Databaser beror på nycklar för att lagra, sortera och jämföra eller skapa relationer mellan poster. Om du har varit i databaser om ett tag har du nog hört talas om olika typer av nycklar: primära nycklar, kandidatnycklar och främmande nycklar. När du skapar en ny databas tabell frågade du att välja en primär nyckel som unikt identifierar varje post som lagras i den tabellen.
Varför en primär nyckel är viktig
Valet av en primär nyckel är ett av de mest kritiska besluten du gör vid utformningen av en ny databas. Den viktigaste begränsningen är att du måste se till att den valda nyckeln är unik. Om det är möjligt att två poster - tidigare, nuvarande eller framtida - kan dela samma värde för ett attribut, är det ett dåligt val för en primär nyckel.
En annan viktig aspekt av en primär nyckel är dess användning av andra tabeller som länkar till den i en relationsdatabas. I den här aspekten verkar en primär nyckel som målet för en pekare. På grund av dessa ömsesidigheter måste en primärnyckel finnas när en post skapas, och den kan aldrig förändras.
Dåliga val för primärtangenter
Vad vissa människor kanske anser vara ett uppenbart val för en primär nyckel kan vara ett dåligt val istället. Här är några exempel:
- postnummer gör inte bra primära nycklar för ett bord av städer. Om du gör ett enkelt uppslagstabell med städer tycks postnummer vara en logisk primär nyckel. Men vid ytterligare utredning kan du inse att mer än en stad delar en postnummer. Till exempel delar New Jersey städerna Neptun, Neptun City, Tinton Falls och Wall Township alla 07753 Postnummer.
- Säkerhetsnummer Gör inte bra primära nycklar av många anledningar. De flesta anser att deras SSN är privat och vill inte ha det tydligt synligt för databasanvändare. Vissa människor har inte SSN-utlänningar eller invandrare som aldrig har fått ett socialförsäkringskort. SSN kan också återanvändas efter en persons död. En individ kan ha mer än ett SSN under en livstid när socialförsäkringsverket utfärdar ett nytt nummer i fall av bedrägerier eller identitetsstöld.
- Mejladresser är också ett dåligt val för en primär nyckel. Även om de är unika kan de förändras över tiden. Dessutom har inte alla en e-postadress.
Välja en effektiv primär nyckel
Så, vad gör en bra primärnyckel? I de flesta fall, vänd dig till ditt databassystem för support.
En bästa praxis i databasdesign är att använda en internt genererad primär nyckel. Ditt databashanteringssystem kan normalt generera en unik identifierare som inte har någon betydelse utanför databassystemet. Till exempel kan du använda datatypen Microsoft Access AutoNumber för att skapa ett fält som heter RecordID. Datatypen AutoNumber ökar automatiskt fältet varje gång du skapar en post. Medan numret själv är meningslöst, det ger ett tillförlitligt sätt att hänvisa en enskild post i frågor.
En bra huvudnyckel är vanligtvis kort, använder siffror och undviker specialtecken eller en blandning av versaler och små bokstäver för att underlätta snabb databasuppslag och jämförelser.