【发布时间】:2012-09-22 15:48:19
【问题描述】:
是否可以让一个表的外键成为另一个表的复合主键的一部分? 例如,如果我有两张表,一张包含有关不同用户的所有活动项目的信息,另一张包含有关项目正在使用哪些设备的信息:
项目表:
Composite Primary Keys: UserId, ProjectId(两者都不是唯一的)
设备表:
Composite Primary Keys: UserId, ProjectId, EquipmentId(两者都不是唯一的)
现在是否可以将设备表中的 ProjectId 设置为项目表中的外键?当我尝试时,我收到一条错误消息,指出项目表中的列与现有的主键或唯一约束不匹配?
【问题讨论】:
-
你是如何定义复合主键的?您是否在 each 列上添加了唯一约束?
-
但我不希望每一列都是唯一的。我希望两列或三列的组合是唯一的。
-
我问你是如何定义约束的。我没有说你应该这样定义它们。
-
全部选中并点击设置主键。它们的列名旁边都有一个黄色键符号。
标签: sql sql-server foreign-keys primary-key