2016-08-16 112 views
-1

我正在嘗試創建一個表Inspection_tbl,其中列ApprovedByPersonnel_ID (FK)參考Personnel_tbl。該表還有另一列InspectedByPersonnel_ID (FK),它們也引用Personnel_tbl在同一張表上使用相同的FK兩次

不允許從一個表(Inspection_tbl)引用同一個表兩次(Personnel_tbl),因爲我要有相同的列(Personnel_ID (FK))?

我很新的SQL和我很喜歡接受任何解決方案來解決這個問題..非常感謝您......

+2

據我所知,應該沒有問題,只要兩個外鍵字段的命名不同。在兩個不同的外鍵約束中引用同一個表沒有問題。只要確保字段和約束具有不同的名稱。 –

+1

是的,外鍵列的名稱可以不同於引用的主鍵列的名稱。 –

+0

你試過了嗎?這將比在Stack Overflow上發佈更快。 – Blorgbeard

回答

0

是引用同一個表兩次從一個表(Personnel_tbl)( Inspection_tbl)不允許

的方式來思考,這是思考什麼的FK關係意味着。外鍵定義了一個A references T(B)意味着A必須出現在B。如果不是,則它不是這種類型 - 即不是該域的類型 - 定義B

是否有規則說,表中的2列不能有相同的域?那沒有。規範化與類型正交。

您的意思是ApprovedByInspectedBy都被約束到由Personnel_tbl.Personnel_ID定義的域。如果這就是你的意思,那你的狀態很好。 :-)