Կարո՞ղ է առաջնային բանալին նաև արտաքին բանալին լինել:
Կարո՞ղ է առաջնային բանալին նաև արտաքին բանալին լինել:

Video: Կարո՞ղ է առաջնային բանալին նաև արտաքին բանալին լինել:

Video: Կարո՞ղ է առաջնային բանալին նաև արտաքին բանալին լինել:
Video: Իրանը զգուշացնում է Երևանին, որ սպասվում է պատերազմ, Ադրբեջանում զորաշարժ է նկատվում. իրանագետ 2024, Ապրիլ
Anonim

Հիմնական բանալիներ միշտ պետք է եզակի լինել, օտարերկրյա բանալիներ անհրաժեշտ է թույլատրել ոչ եզակի արժեքներ, եթե աղյուսակը մեկ-շատ հարաբերություն է: Միանգամայն լավ է օգտագործել a օտար բանալի քանի որ առաջնային բանալին եթե աղյուսակը կապված է մեկ առ մեկ, այլ ոչ թե մեկ-շատ հարաբերություններով:

Նմանապես, հարցնում են՝ կարո՞ղ է առաջնային բանալին նույն աղյուսակում լինել նաև օտար բանալի:

Ստեղծելով ա օտար բանալի գրեթե նույնքան հեշտ է, որքան ստեղծելը առաջնային բանալին , բացառությամբ, որ SQL Server-ը պարտադրում է ևս մի քանի կանոն օտարերկրյա բանալիներ . Օրինակ, ի օտար բանալի պետք է հղում ա առաջնային բանալին կամ եզակի սահմանափակում, թեև այդ հղումը կարող է լինել վրա նույն սեղանը կամ ուրիշի վրա սեղան.

Բացի այդ, ինչո՞վ են տարբերվում հիմնական և արտաքին բանալիները: Ա առաջնային բանալին հատուկ բանալի է, որն օգտագործվում է աղյուսակում գրառումները եզակիորեն նույնականացնելու համար, մինչդեռ ա օտարերկրյա բանալին օգտագործվում է երկու աղյուսակների միջև հարաբերություններ հաստատելու համար: Երկուսն էլ կառուցվածքով նույնական են, բայց խաղում են տարբեր դերեր հարաբերական տվյալների բազայի սխեմայում:

Այստեղ դուք կարո՞ղ եք ունենալ օտարերկրյա բանալի առանց հիմնական բանալիի:

Այո՛։ Մենք կարող է ստեղծել Արտաքին բանալի առանց ունենալով Առաջնային բանալին ծնողական աղյուսակում: Մեզանից շատերը սխալ պատկերացումների մեջ են, որ մենք կարող է չստեղծել ա Արտասահմանյան բանալի առանց հիմնական բանալիի ծնողական աղյուսակում: Այդ եզակի ID-ն կարող է լինել առաջնային բանալին կամ եզակի բանալի.

Կարո՞ղ է արտաքին բանալին կրկնօրինակվել:

Ի տարբերություն առաջնային բանալիներ , օտար բանալիները կարող են պարունակում է կրկնօրինակել արժեքներ։ Նաև լավ է, որ նրանք պարունակեն NULL արժեքներ: Ինդեքսները ավտոմատ կերպով չեն ստեղծվում օտարերկրյա բանալիներ ; սակայն, որպես DBA, դուք կարող է սահմանել դրանք: Աղյուսակը թույլատրվում է պարունակել մեկից ավելի օտար բանալի.

Խորհուրդ ենք տալիս: