2013-10-15 97 views
1

我正在使用SQL Server Express 2012並試圖做兩個relatonships,從同一個表中的兩個FK到另一個表中的一個PK。兩個FK對一個PK

的關係似乎工作,因爲它在數據庫中的圖顯示了,但是當我嘗試保存更改,我收到以下錯誤:

'Members' table saved successfully 'BookedResources' table - Unable to create relationship 'FK_BookedResourcesMemberId_MembersMemberId'.
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_BookedResourcesMemberId_MembersMemberId". The conflict occurred in database "resursBokning2", table "dbo.Members", column 'MemberId'.

成員Id的成員是PK。

BookedResouce.EditedBy(FK) - > Member.MemberId(PK)
BookedResouce.MemberId(FK) - > Member.MemberId(PK)

有人知道這個錯誤是什麼? 我讀過,應該可以有這種關係,所以它應該工作。

回答

0

錯誤發生,因爲也許你的一個外鍵使用相同的名稱兩次,所以更改第二名稱爲其他值,如:

FK_BookedResourcesMemberId_MembersMemberId2 
+0

它當然可以是最初在BookedResource表中創建記錄的成員存儲在MemberId中。在這種情況下,你沒有重複的數據。 – RFerwerda

+0

這就是對,一個成員可以創建,另一個成員可以編輯。如果你看什麼即時通訊寫作,一個fk被稱爲EditedBy,另一個fk MemberId。 – MikeAlike234

+0

@ david2342 kinske不會引用相關列的名稱,而是引用FK的名稱。你的警告表明兩者都被稱爲'FK_BookedResourcesMemberId_MembersMemberId'這可能是你無意中試圖兩次添加相同的列關係,你應該仔細檢查它們。 – Amber

0

從您提供的,它的錯誤看起來像你試圖命名兩個外鍵相同。正如@kinse所暗示的,給每個外鍵關係一個唯一的名字。另外,請考慮是否需要兩個外鍵到同一個表 - 它可能表明您的數據庫模型不完整。

我假定成員不會編輯其他成員,因此EditedBy(成員)和MemberId在成員表上顯得不必要。