Kuidas valida andmebaasis esmast võtit

Primaarvõti on relatsiooniandmebaasi veerg, mida kasutatakse tabeli iga kirje kordumatuks tuvastamiseks. Primaarvõtme valimisel peate valima veeru, mis sisaldab kõigi ridade kordumatuid väärtusi. Igal üksikul real peab primaarvõtme veerus olema väärtus ja väärtused ei tohi muutuda. Kui te ei leia loomulikku primaarvõtit, mis vastaks kõigile reeglitele, võite luua asendusvõtme. See Selgitatud õpetab, kuidas valida oma andmebaasi primaarvõtit.

1
Veenduge, et kõik primaarvõtme kirjed oleksid kordumatud. See tähendab, et soovite valida veeru, mis sisaldab mingit unikaalset identifikaatorit, mis ei kordu kunagi teistes ridades. Kui veerg sisaldab väärtusi, mis on rohkem kui ühe rea jaoks identsed, ei tohiks see olla teie esmane võti. Näiteks kui loote töötajate andmebaasi ja igal töötajal on kordumatu töötaja number, võite kasutada veergu, mis sisaldab töötaja ID-numbrit oma peamise võtmena, peaksite seda tegema ainult siis, kui pole võimalust, et sama ID-d tulevikus uuesti kasutatakse.Võite kaaluda liitvõtme kasutamist, mis on mitut veergu kasutav primaarvõti. Rohkem kui ühe veeru ühendamine võtmes (nt sünnikuupäeva, päritoluriigi ja töötaja ID kombineerimine) vähendab dubleerivate kirjete võimalust.

2
Valige väärtus, mis ei muutu. Kui olete veeru primaarvõtmeks määranud, ei saa te selles veerus ühtegi väärtust muuta. Valige midagi staatilist, mida teate, et te ei pea kunagi värskendama. Näiteks meie töötaja ID näites soovite töötaja ID veergu kasutada peamise ID-na ainult siis, kui pole võimalust, et töötajale määratakse mõni muu töötaja ID .Muud andmed, mis võivad muutuda, on inimeste nimed, aadressid, telefoninumbrid ja aadressid. Vältige neid primaarvõtme valimisel.

3
Primaarvõtmes ei tohi olla nullväärtusi. Igal real peab olema identifikaator, ühegi rea primaarvõtme veerus ei tohi olla nullväärtusi. Oletame näiteks, et loote patsienditeavet sisaldava andmebaasi. Kuna sotsiaalkindlustuse numbrid on kordumatud ja ei muutu, võib selline veerg tunduda hea privaatvõtme kandidaadina. Kui aga patsient pole seda esitanud, vajate kõigi patsientide jaoks sotsiaalkindlustusnumbrit, ei saa te neid tabelisse lisada, kui see veerg on teie esmane võti.

4
Kaaluge asendusvõtme kasutamist. Loomulik võti on võti, mis sisaldab tegelikke andmeid, nagu sotsiaalkindlustuse number või töötaja ID-number, kõik meie eelmised näited on loomulikud võtmed. Võib olla raske leida midagi, mis vastaks kõigile eelnimetatud tingimustele! Kui te ei suuda tuvastada veergu, mis töötaks (loomuliku) primaarvõtmena, proovige asendusvõtit: asendusvõti sisaldab unikaalseid väärtusi, mis genereeritakse uute kirjete sisestamisel. Asendusvõtme kasutamiseks peate looma uue veeru, mis ei kajasta tegelikke andmeid. Näiteks kui teil on klientide loend, võite luua uue veeru nimega KliendiID, mida kasutate ainult unikaalsena. iga kliendi jaoks andmebaasi identifikaator.Kliendi ID näites määrate iga kord, kui sisestate oma andmebaasi uue kliendi, talle uue kliendi ID, mis toimiks nende püsiva kordumatu identifikaatorina. Uue kordumatu kliendi ID loomiseks võite kasutada numbrigeneraatorit või lisada eelmisele väärtusele 1.