1

私たちのデータベースシステムには、学生と人事のフィールドがあります。それらにはPersonnelCardIdとStudentCardIdがあり、主キーにしました。次に、cardIDを保持する支払いデバイスがあり、それが外部キーであることを宣言しました。その場合、行を挿入できませんでした。調査の結果、2つの主キーを外部キーに参照できないことがわかりました。では、どうすればこの状況を修正できますか?ありがとう。

4

1 に答える 1

5

あなたが述べたように、外部キーは同時に 2 つの異なるテーブルを参照することはできません。現在のスキーマでは、cardID外部キーはPersonnelCardIdまたはStudentCardId...のいずれかのみを参照できます。

私の理解が正しければ、スキーマは次のようになります。

PersonnelCard
----------------
PersonnelCardID - PK
PersonnelCardFields


StudentCard
----------------
StudentCardID - PK
StudentCardFields


PaymentDevice
----------------
PaymentDeviceID - PK
CardID - FK

PersonnelCardこれを解決するには、とStudentCardテーブルを組み合わせる方法を見つける必要があります...

Card
----------------
CardID - PK
CardType - (Personnel or Student)
CardFields

テーブルの FKPaymentDeviceは、新しいテーブルの PK を参照できるようになりましたCard

于 2012-12-21T15:55:43.477 に答える