私たちのデータベースシステムには、学生と人事分野。それらにはPersonnelCardIdとStudentCardIdがあり、主キーにしました。次に、cardIDを保持する支払いデバイスがあり、それが外部キーであることを宣言しました。その場合、行を挿入できませんでした。調査の結果、2つの主キーを外部キーに参照できないことがわかりました。では、どうすればこの状況を修正できますか?ありがとう。
回答:
回答№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
上のFK PaymentDevice
テーブルは新しいPKを参照できるようになりました Card
表。