在同一张桌子上使用相同的FK两次

时间:2016-08-16 23:13:27

标签: sql-server

我正在尝试使用引用Inspection_tbl的列ApprovedByPersonnel_ID (FK)创建一个表Personnel_tbl。该表还有另一列InspectedByPersonnel_ID (FK),它也引用了Personnel_tbl

从一个表(Personnel_tbl)引用同一个表两次(Inspection_tbl)是不允许的,因为我将拥有相同的列(Personnel_ID (FK))?

我是SQL的新手,我很乐意接受解决这个问题的任何解决方案。非常感谢...

1 个答案:

答案 0 :(得分:0)

  

不允许从一个表(Inspection_tbl)引用同一个表两次(Personnel_tbl)

考虑这个问题的方法是考虑FK关系意味着什么。外键定义A references T(B)表示 A 必须出现在 B 中。如果没有,则 B 定义的类型(即不属于域)不属于此类。

是否有规则说表中的2列不能具有相同的域?那没有。归一化与类型正交。

您说ApprovedByInspectedBy都受限于Personnel_tbl.Personnel_ID定义的域。如果这就是你的意思,你就会处于良好的状态。 : - )