两个FK到一个PK

时间:2013-10-15 08:08:21

标签: sql sql-server table-relationships

我正在使用SQL Server Express 2012并试图制作两个关联,两个FK从同一个表到另一个表中的一个PK。

这种关系似乎有效,因为它显示在数据库图表中但是当我尝试保存更改时,我收到以下错误:

  

'会员'表已成功保存   'BookedResources'表    - 无法创建关系'FK_BookedResourcesMemberId_MembersMemberId'。
  ALTER TABLE语句与FOREIGN KEY约束“FK_BookedResourcesMemberId_MembersMemberId”冲突。冲突发生在数据库“resursBokning2”,表“dbo.Members”,列'MemberId'。

成员中的MemberId是PK。

BookedResouce.EditedBy(FK) - >会员.MemberId(PK)
BookedResouce.MemberId(FK) - >会员.MemberId(PK)

有人知道这个错误是关于什么的吗? 我已经读过,建立这种关系应该没问题,所以它应该有效。

2 个答案:

答案 0 :(得分:0)

发生错误是因为您可能对外键使用相同的名称两次,因此将第二个名称更改为其他值,例如:

FK_BookedResourcesMemberId_MembersMemberId2

答案 1 :(得分:0)

根据您提供的错误,您似乎尝试将两个外键命名为相同。正如@kinse建议的那样,给每个外键关系一个唯一的名称。另外,考虑是否需要两个外键到同一个表 - 它可能表明您的数据库模型不完整。

我假设会员不会编辑其他成员,因此EditedBy(成员)和MemberId在成员表上似乎是不必要的。