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