表Department
:
DeptId
Name
表Team
TeamId
*DeptId (FK)
Name
表Employee
EmpId
*DeptId
*TeamId
我正在对一个旧项目进行一些更新,但是我不知道为什么老程序员设计这样的表(例如将DeptId
和TeamId
都放在Employee
中表格)。
我发现这没用,因为我可以从Team
表中获得部门,并且无需将两个FK ID都放入Employee
表中,TeamId
就足够了。
还有其他原因会迫使我将两个FK放在该表中吗?
谢谢。
答案 0 :(得分:1)
在编写数据模型时,员工可能是不在其部门中的团队的成员。
例如,如果员工暂时借贷,这可能是可能的。
我对数据模型更大的问题是员工与团队之间以及员工与部门之间的关系会随着时间而变化。因此,我将为每个实体提供三个表。表中的唯一关系是在team
和department
之间(因为假定时间不会改变)。
然后我将有两个联结表,一个employeeDepartments
和一个employeeTeams
,它们捕获随时间变化的关系。