外键可以作为主键吗?

时间:2017-03-30 13:27:26

标签: sql database database-design

如果表具有由属性A,B组成的复合主键,并且该复合主键在另一个表中引用,那么其他表是否可以将属性A作为主键而不是属性b?也许,属性A与另一个复合主键在同一个表中具有一些其他属性?

2 个答案:

答案 0 :(得分:1)

如果第二个表同时具有属性A和B,那么FK约束可以引用第一个表中的那些相同属性(因为它们被唯一地约束为PK),无论A和/或B是否属于第二张桌子的PK与否。

答案 1 :(得分:0)

是。一个相当常见的例子是总帐。 Item表有一个复合键,由Transaction Number和Item Number组成(在事务中)。 Transaction表有一个Transaction Number的键,由Item中的一个关键字段引用。 总分类帐系统并不总是以这种方式设计,但它们通常都是。