En primärnyckel identifierar unikt varje post i en tabell. Inga två rader delar samma primärnyckelvärde. Nyckeln kan inte vara null. Den måste vara unik och stabil. I en kundtabell kan primärnyckeln vara ett kund-ID. I en ordertabel kan den vara ett ordernummer. Primärnyckeln är ankaret för posten. Andra tabeller refererar till den via främmande nycklar. Utan en primärnyckel är poster svåra att identifiera, uppdatera eller ta bort på ett tillförlitligt sätt.
Primärnycklar finns i två former. Naturliga nycklar härleds från själva informationen. Ett personnummer, en e-postadress eller en produkt-SKU. De är meningsfulla men kan ändras. Människor ändrar e-postadresser. Företag ändrar produktkoder. Surrogatnycklar genereras av systemet. Automatiskt ökande heltal eller UUID:er. De har ingen betydelse utanför databasen. De ändras aldrig. Surrogatnycklar föredras generellt eftersom stabilitet är viktigare än betydelse. En naturlig nyckel som ändras tvingar fram uppdateringar i varje tabell som refererar till den. En surrogatnyckel förblir densamma för alltid. Vissa tabeller använder sammansatta primärnycklar gjorda av två eller flera kolumner. En orderradsartikel kan identifieras genom kombinationen av order-ID och radnummer. Sammansatta nycklar fungerar men komplicerar kopplingar och referenser till främmande nyckelringar. En enda surrogatnyckel är enklare.
Primärnyckelegenskaper
- Unikt — inga dubbletter
- Inte null — har alltid ett värde
- Stabil — förändras inte över tid
- Enkel eller sammansatt — en kolumn eller flera
- Indexerad — automatiskt för snabba sökningar
En primärnyckel är en identitet. Den säger att den här posten är den här posten och ingen annan. Utan den har data inget ankare.
Comments
No comments yet. Be the first to share a thought.
Leave a comment