In unserem Datenbanksystem haben wir Schüler undPersonalbereiche. Sie haben PersonnelCardId und StudentCardId und wir haben sie zum Primärschlüssel gemacht. Dann haben wir ein Zahlungsmittel, das cardID enthält, und wir haben erklärt, dass es sich um einen Fremdschlüssel handelt. Und wir konnten in diesem Fall keine Zeile einfügen und nach einer Recherche haben wir gelernt, dass wir nicht zwei Primärschlüssel auf einen Fremdschlüssel referenzieren können. Wie können wir diese Situation beheben? Vielen Dank.
Antworten:
5 für die Antwort № 1Wie Sie bereits gesagt haben, kann ein Fremdschlüssel nicht gleichzeitig zwei verschiedene Tabellen referenzieren. Mit Ihrem aktuellen Schema, das cardID
Der Fremdschlüssel kann auch nur referenzieren PersonnelCardId
oder StudentCardId
...
Wenn ich es richtig verstanden habe, sieht Ihr Schema so aus:
PersonnelCard
----------------
PersonnelCardID - PK
PersonnelCardFields
StudentCard
----------------
StudentCardID - PK
StudentCardFields
PaymentDevice
----------------
PaymentDeviceID - PK
CardID - FK
Um dieses Problem zu lösen, müssen Sie einen Weg finden, die PersonnelCard
und StudentCard
tische ...
Card
----------------
CardID - PK
CardType - (Personnel or Student)
CardFields
Der FK auf der PaymentDevice
Tabelle kann jetzt auf die PK im neuen verweisen Card
Tabelle.