多列fk可以引用多个表吗?

时间:2013-05-20 19:26:35

标签: sql-server tsql rdbms

我有3张桌子 part,build,& buildpart buildpart是m:m。 我想知道我是否可以包含引用part& amp;的两列buildpart。分别建立在一个单独的fk&使它聚集。我一直在寻找约4个小时&我认为出于某些正当理由这是不可能的。虽然我认为MacConnel在这里不同意http://c2.com/cgi/wiki?ForeignKeysCanOnlyReferenceOneTable

2 个答案:

答案 0 :(得分:1)

外键可以引用多个表,但该外键的值必须与两个表中的值匹配,而不是任何一个。将部件和构建组合成一列似乎没有任何意义,因为这不代表您的多对多关系。

答案 1 :(得分:0)

不,主表与外表之间存在外键约束。因此,您可以在主表上创建一个聚簇索引,该索引覆盖列(part_id和build_id),然后从buildpart构建一个外键,构建一个外键,从buildpart到part。

HTH