/ / Zwei Primärschlüsselreferenz auf einen Fremdschlüssel - SQL, Datenbank, Oracle, Fremdschlüssel, Fremdschlüsselbeziehung

Zwei Primärschlüsselverweise auf einen Fremdschlüssel - SQL, Datenbank, Oracle, Fremdschlüssel, Fremdschlüsselbeziehung

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 № 1

Wie 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.