我正在尝试使用引用Inspection_tbl
的列ApprovedBy
或Personnel_ID (FK)
创建一个表Personnel_tbl
。该表还有另一列InspectedBy
或Personnel_ID (FK)
,它也引用了Personnel_tbl
。
从一个表(Personnel_tbl
)引用同一个表两次(Inspection_tbl
)是不允许的,因为我将拥有相同的列(Personnel_ID (FK)
)?
我是SQL的新手,我很乐意接受解决这个问题的任何解决方案。非常感谢...
答案 0 :(得分:0)
不允许从一个表(Inspection_tbl)引用同一个表两次(Personnel_tbl)
考虑这个问题的方法是考虑FK关系意味着什么。外键定义域:A references T(B)
表示 A 必须出现在 B 中。如果没有,则 B 定义的类型(即不属于域)不属于此类。
是否有规则说表中的2列不能具有相同的域?那没有。归一化与类型正交。
您说ApprovedBy
和InspectedBy
都受限于Personnel_tbl.Personnel_ID
定义的域。如果这就是你的意思,你就会处于良好的状态。 : - )