Vad är en surrogatnyckel?
En surrogatnyckel är en unik identifierare som används för att representera en enhet i en databas, oavsett dess externa identifieringsattribut. Det är en ersättning för den naturliga nyckeln. De genereras oftast som ett automatiskt ökande serienummer i raden men kan också genereras med hjälp av slumptal, hashade värden eller UUID (universellt unika identifierare).
Fördelar med surrogatnyckel
* Förenklar databasdesignen genom att minska komplexiteten och redundansen i samband med att använda naturliga nycklar
* Säkerställer unikhet och integritet hos primärnyckeln
*Undviker den potentiella prestandapåverkan av att använda stora eller sammansatta naturliga nycklar i frågor och kopplingar.
Nackdelar med surrogatnyckel
* Introducerar en ytterligare abstraktionsnivå mellan den verkliga enheten och dess representation i databasen
*Kräv korrekt hantering för att säkerställa att de genereras och tilldelas unikt och konsekvent.
När ska man använda en surrogatnyckel?
Surrogatnyckel används vanligtvis:
* När enhetens naturliga nyckel inte garanteras vara unik (som ett kundnamn).
* När enhetens naturliga nyckel är komplex (som en kombination av flera attribut)
* När det finns ett behov av att separera primärnyckeln från affärslogiken relaterad till enheten
* När den naturliga nyckeln kan komma att ändras över tid är framställning olämplig som en stabil, långsiktig identifierare.