sql >> Databasteknik >  >> RDS >> Sqlserver

Vad är skillnaden mellan en primärnyckel och en surrogatnyckel?

Den primära nyckeln är en unik nyckel i din tabell som du väljer som bäst unikt identifierar en post i tabellen. Alla tabeller bör ha en primärnyckel, för om du någonsin behöver uppdatera eller ta bort en post måste du veta hur du unikt identifierar den.

En surrogatnyckel är en artificiellt genererad nyckel. De är användbara när dina poster i princip inte har någon naturlig nyckel (som en Person tabell, eftersom det är möjligt för två personer födda på samma datum att ha samma namn, eller registrerar i en logg, eftersom det är möjligt för två händelser att inträffa så att de bär samma tidsstämpel). Oftast ser du dessa implementerade som heltal i ett automatiskt inkrementerande fält, eller som GUID:er som genereras automatiskt för varje post. ID-nummer är nästan alltid surrogatnycklar.

Till skillnad från primärnycklar behöver dock inte alla tabeller surrogatnycklar. Om du har en tabell som listar staterna i Amerika, behöver du egentligen inget ID-nummer för dem. Du kan använda tillståndsförkortningen som en primär nyckelkod.

Den största fördelen med surrogatnyckeln är att de är lätta att garantera som unika. Den största nackdelen är att de inte har någon mening. Det finns ingen mening med att "28" är Wisconsin, till exempel, men när du ser "WI" i kolumnen State i din adresstabell vet du vilken stat du pratar om utan att behöva leta upp vilken stat som är vilken i din stat bord.



  1. Hur SLUTAR man två kolumner med en serialiserad data?

  2. Räknemedian grupperat efter dag

  3. MySQL Välj 3 slumpmässiga rader där summan av tre rader är mindre än värdet

  4. Visa bilder en efter en med nästa och föregående funktionalitet