1

我有 3 个表部分,构建和构建部分,构建部分是 m:m。我想知道我是否可以在单个 fk 中包含分别引用 part 和 build 的两列 buildpart 并使其成簇。我现在已经搜索了大约 4 个小时,我认为出于某种正当理由这是不可能的。虽然我认为 MacConnel 不同意这里http://c2.com/cgi/wiki?ForeignKeysCanOnlyReferenceOneTable

4

2 回答 2

1

外键可以引用多个表,但该外键的值必须匹配两个表中的值,而不仅仅是其中一个。将部分合并到一个列中似乎没有任何意义,因为这不代表您的多对多关系。

于 2013-05-20T20:13:55.003 回答
0

不,外键约束存在于主表和外表之间。因此,您可以在涵盖两列(part_id 和 build_id)的主表上创建一个聚集索引,然后从 buildpart 到 build 的 1 个外键和从 buildpart 到 part 的一个外键。

高温高压

于 2013-05-20T19:39:58.170 回答