sql - 如何在 SQL 表中正确使用 FK
问题描述
表Department
:
DeptId
Name
桌子Team
TeamId
*DeptId (FK)
Name
桌子Employee
EmpId
*DeptId
*TeamId
我正在对一个旧项目进行一些更新,但我不知道为什么老程序员设计了这样的表(比如把DeptId
和TeamId
放在Employee
表中)。
我觉得这没什么用,因为我可以从Team
表中获取部门,并且不需要将两个 FK ID 都放入Employee
表中,TeamId
就足够了。
还有其他原因可以迫使我将两个 FK 都放在那张桌子上吗?
谢谢你。
解决方案
在编写数据模型时,员工可能是不属于他或她部门的团队的成员。
例如,如果员工暂时借用,这可能是可能的。
我对数据模型的更大问题是员工与团队之间以及员工与部门之间的关系会随着时间而变化。因此,我将为每个实体创建三个表。表中唯一的关系是team
和department
(因为它可能不会随着时间而改变)。
然后我会有两个联结表,一个employeeDepartments
和一个employeeTeams
捕获随时间变化的关系。
推荐阅读
- swift - 无法为“UIKit”错误加载底层模块
- python - 使用 sum() 在项目列表中查找汇总价格
- python - 基于query_params的列表方法中的Django rest框架缓存响应
- kubernetes-helm - .Values 中的 helm 变量
- sql - SQL Query 子查询(二级)
- forms - symfony 使用 get 方法禁用类表单的 csrf 保护
- c - 对“__ubsan_handle_nonnull_arg”的未定义引用
- c# - 当我们提供“/identity”路径时,身份服务器 3 记得我不工作
- ios - UITextView 正确突出显示单词
- windows - Windows 上的 emacs Tramp:plink 说 /bin/sh: env: command not found