sql >> Database >  >> RDS >> Sqlserver

Wat is het verschil tussen een primaire sleutel en een surrogaatsleutel?

De primaire sleutel is een unieke sleutel in uw tabel die u kiest en die een record in de tabel het best uniek identificeert. Alle tabellen moeten een primaire sleutel hebben, want als u ooit een record moet bijwerken of verwijderen, moet u weten hoe u deze uniek kunt identificeren.

Een surrogaatsleutel is een kunstmatig gegenereerde sleutel. Ze zijn handig wanneer uw records in wezen geen natuurlijke sleutel hebben (zoals een Person tabel, aangezien het mogelijk is dat twee mensen die op dezelfde datum zijn geboren dezelfde naam hebben, of records in een logboek, aangezien het mogelijk is dat er twee gebeurtenissen plaatsvinden zodat ze dezelfde tijdstempel hebben). Meestal ziet u deze geïmplementeerd als gehele getallen in een automatisch oplopend veld, of als GUID's die automatisch worden gegenereerd voor elke record. ID-nummers zijn bijna altijd surrogaatsleutels.

In tegenstelling tot primaire sleutels hebben echter niet alle tabellen surrogaatsleutels nodig. Als je een tabel hebt met de staten in Amerika, heb je daar niet echt een ID-nummer voor nodig. U zou de staatsafkorting als primaire sleutelcode kunnen gebruiken.

Het belangrijkste voordeel van de surrogaatsleutel is dat ze gemakkelijk als uniek kunnen worden gegarandeerd. Het grootste nadeel is dat ze geen betekenis hebben. Het betekent niet dat "28" bijvoorbeeld Wisconsin is, maar als u 'WI' ziet in de kolom Staat van uw adrestabel, weet u over welke staat u het hebt zonder dat u hoeft op te zoeken welke staat dat is in uw staat tafel.



  1. Max tabellen &ontwerppatroon

  2. Hoe voeg ik een attribuut toe aan xml in een CLOB in een Oracle-database?

  3. Is er een manier om een ​​voorbereide query te zien zoals deze in de database wordt uitgevoerd?

  4. Hoe gedraagt ​​pgbouncer zich wanneer transactiepooling is ingeschakeld en een enkele verklaring wordt uitgegeven?