在我们的数据库系统中,我们有学生和人事字段。他们有 PersonnelCardId 和 StudentCardId,我们将它们设为主键。然后我们有一个持有 cardID 的支付设备,我们声明它是一个外键。在这种情况下我们无法插入一行,经过研究我们了解到我们不能将两个主键引用到一个外键。那么我们该如何解决这种情况呢?谢谢。
问问题
1114 次
1 回答
5
正如您所说,外键不能同时引用两个不同的表。使用您当前的架构,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
现在可以引用新Card
表中的 PK。
于 2012-12-21T15:55:43.477 回答