Esmase võtme valimine

Ärge kasutage postiindeksit või sotsiaalkindlustuse numbrit

Andmebaasid sõltuvad kandedest, et säilitada, sorteerida ja võrrelda või luua suhteid dokumentide vahel. Kui olete juba mõnda aega andnud andmebaase, olete ilmselt kuulnud erinevat tüüpi võtmetest: primaarvõtmed, kandidaatvõtmed ja võõrkeeled . Kui loote uue andmebaasi tabeli, palutakse teil valida üks primaarvõti , mis määrab kindlaks iga tabelis salvestatud kirje.

Miks peamine võti on oluline

Primaarvõtme valimine on üks kõige kriitilisemaid otsuseid, mida teete uue andmebaasi kujundamisel . Kõige olulisem piirang on see, et peate tagama, et valitud võti on ainulaadne. Kui on võimalik, et kaks kirjeid - mineviku, praeguse või tuleviku - võivad jagada atribuudi jaoks sama väärtust, on see primaarvõtme jaoks kehv valik.

Primaarvõtme veel üks oluline aspekt on selle kasutamine teiste tabelitega, mis linkivad selle relatsioonandmebaasis. Selles aspektis toimib primaarklahv nagu näitaja sihtmärk. Nende vastastikuse sõltuvuse tõttu peab rekordi loomise ajal olema esmane võti ja see ei saa kunagi muuta.

Peamised võtmed on valed

Selle asemel võib olla halb valik, mida mõned inimesed võivad pidada primaarvõtme jaoks ilmselgeks. Siin on mõned näited:

Tõhusa esmase võtme valimine

Mis on hea esmane võti? Enamikul juhtudel pöörduge abi saamiseks oma andmebaasi süsteemi.

Andmebaasi disaini parimaks tavaks on sisemiselt genereeritud primaarvõtme kasutamine. Teie andmebaasi haldussüsteem võib tavaliselt genereerida unikaalse identifikaatori, millel puudub tähendus väljaspool andmebaasi süsteemi. Näiteks võite kasutada andmevormi Microsoft Access AutoNumber, et luua väljale nimega RecordID. Andmete tüüp AutoNumber suurendab välja iga kord, kui loote rekordi. Kuigi number iseenesest on mõttetu, pakub see usaldusväärset viisi üksikute kirjade päringutele viitamiseks.

Hea esmane võti on tavaliselt lühike, kasutab numbreid ning väldib erimärke või suurtähtede ja väiketähtede kombinatsiooni, et hõlbustada andmebaasi kiiret otsimist ja võrdlusi.