两个主键引用外键

时间:2012-12-21 15:46:18

标签: sql database oracle foreign-keys foreign-key-relationship

在我们的数据库系统中,我们有学生和人事领域。他们有PersonnelCardId和StudentCardId,我们把它们作为主键。然后我们有一个持有cardID的支付设备,我们宣称它是一个外键。在这种情况下我们无法插入行,经过研究后我们了解到我们无法将两个主键引用到外键。那么我们如何解决这种情况呢?谢谢。

1 个答案:

答案 0 :(得分:5)

正如您所说,外键不能同时引用两个不同的表。使用您当前的架构,cardID外键只能引用PersonnelCardIdStudentCardId ...

如果我理解正确,您的架构看起来像:

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


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


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

要解决此问题,您必须找到一种方法来合并PersonnelCardStudentCard表...

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

PaymentDevice表上的FK现在可以在新Card表中引用PK。