V našom databázovom systéme máme študentov apersonálne polia. Majú PersonnelCardId a StudentCardId a my sme z nich urobili primárny kľúč. Potom máme platobné zariadenie, ktoré drží kartuID a vyhlásili sme, že ide o cudzí kľúč. V takom prípade sme nemohli vložiť riadok a po výskume sme sa dozvedeli, že nemôžeme odkazovať dva primárne kľúče na cudzí kľúč. Ako teda môžeme túto situáciu napraviť? Vďaka.
odpovede:
5 pre odpoveď č. 1Ako ste už uviedli, cudzí kľúč nemôže odkazovať na dve rôzne tabuľky súčasne. S vašou súčasnou schémou cardID
cudzí kľúč môže odkazovať buď PersonnelCardId
alebo StudentCardId
...
Ak tomu rozumiem správne, vaša schéma vyzerá takto:
PersonnelCard
----------------
PersonnelCardID - PK
PersonnelCardFields
StudentCard
----------------
StudentCardID - PK
StudentCardFields
PaymentDevice
----------------
PaymentDeviceID - PK
CardID - FK
Ak chcete tento problém vyriešiť, musíte nájsť spôsob, ako skombinovať PersonnelCard
a StudentCard
stoly ...
Card
----------------
CardID - PK
CardType - (Personnel or Student)
CardFields
FK na PaymentDevice
tabuľka teraz môže odkazovať na PK v novom Card
stôl.