Kas primaarvõti võib olla ka võõrvõti?
Kas primaarvõti võib olla ka võõrvõti?

Video: Kas primaarvõti võib olla ka võõrvõti?

Video: Kas primaarvõti võib olla ka võõrvõti?
Video: Serialization. MJC Light Talk #37 2024, Mai
Anonim

Peamised võtmed peab alati olema ainulaadne, võõrvõtmed peavad lubama mitteunikaalsed väärtused, kui tabel on üks-mitmele seos. Täiesti hea on kasutada a võõrvõti kui esmane võti kui tabelit ühendab üks-ühele seos, mitte üks-mitmele seos.

Samamoodi küsitakse, kas primaarvõti võib samas tabelis olla ka võõrvõti?

Loomine a võõrvõti on peaaegu sama lihtne kui a esmane võti , välja arvatud see, et SQL Server kehtestab veel mitu reeglit võõrvõtmed . Näiteks võõrvõti peab viitama a esmane võti või kordumatu piirang, kuigi see viide saab peal olema sama laud või teisel laud.

Samuti, kuidas erinevad primaar- ja võõrvõtmed? A esmane võti on spetsiaalne võti, mida kasutatakse tabelis kirjete unikaalseks tuvastamiseks, samas kui a välismaa võtit kasutatakse kahe tabeli vahelise seose loomiseks. Mõlemad on oma ülesehituselt identsed, kuid mängivad erinev rollid relatsioonilise andmebaasi skeemis.

Kas siin võib olla võõrvõtit ilma primaarvõtmeta?

Jah. Meie saab Loo Võõrvõti ilma millel Esmane võti vanemtabelis. Enamik meist on eksiarvamusel, et me saab mitte luua a Välisvõti ilma primaarvõtmeta vanemtabelis. See ainulaadne id saab olla esmane võti või ainulaadne võti.

Kas võõrvõti saab dubleerida?

Erinevalt esmasest võtmed , võõrvõtmed võivad sisaldama duplikaat väärtused. Samuti on OK, et need sisaldavad NULL väärtusi. Indekseid ei looda automaatselt võõrvõtmed ; aga DBA-na sina saab neid määratleda. Tabel võib sisaldada rohkem kui ühte võõrvõti.

Soovitan: