【发布时间】:2015-06-07 02:24:48
【问题描述】:
我有 2 张桌子:
Clients
-------
(PK)id
family
name
...
(PK)idprovincia
(PK)idsesion
Brothers
--------
(PK)id
(PK)idclient
name
我想在 Brothers 和 Clients 之间设置一个外键。我的意思是,一个客户端可以有几个兄弟,但 SQL Server 不允许我这样做。
但是我可以将 idprovincia 和 idsesion 设置为 PROVINCIAS 和 SESIONES(我没有指定的其他表,因为它们没有问题)
我还尝试将 idclient 设置为 UNIQUE,但又一次,SQL Server Management Studio 不允许我创建外键。
我该如何管理?
谢谢
【问题讨论】:
-
我认为你的问题是你试图做一个包含外键的复合键。看看这个:stackoverflow.com/questions/8575046/….
-
“如果你引用一个复合主键,你的外键也需要包含所有这些列 - 所以你需要类似的东西”,意味着你不能将 idsession 或 idprovincia 也作为主键,因为它们不是 Brothers 表中的外键。
-
也许你应该发布错误信息
-
您是否必须将所有这些列设置为主键?您已经有一个 ID 列。
-
(PK)idclient 在 Table Brothers 中应该是 FK,并且不应该是唯一的。客户表中的 PK id 是可以的:该表中的其他字段对这个问题无关紧要:只需应用唯一约束但不要使它们成为 PK。最好的问候,
标签: sql-server foreign-keys unique primary-key entity-relationship