sql - 将同一个表中的 2 个主键列连接到 1 个外键列

标签 sql t-sql database-design

我有一个 jobs 表,其中包含 projectmanageridprojectdirectorid 例如

jobs
----------------
pk jobid
pk projectmanagerid
pk projectdirectorid

这两个 id 列都需要使用 employeeid pk 作为链接来链接到员工表。这是好的做法还是有更好的方法?

employees
------------------
pk employeeid
   other stuff

最佳答案

只要您只有这两种类型:经理和总监,这似乎就可以。但请考虑一下您将来是否可能需要添加其他员工类型,例如协调员。如果存在这种可能性,那么您就在 jobsemployees 之间建立了多对多关系,您应该使用中间联结表来解决该关系,或许还可以添加第三个用于描述员工在工作中的角色的表格(经理、总监……)。

enter image description here

关于sql - 将同一个表中的 2 个主键列连接到 1 个外键列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7326453/

相关文章:

mysql - 从mysql表中获取多个日期范围之间的所有日期

sql-server - 为什么这个 T-SQL OUTPUT INTO with FOREIGN KEY hack 有效?

sql-server - 存储时间和星期几

sql - 有什么方法可以按文本列分组吗?

MySQL SELECT LIKE 空格编码问题?

t-sql - 使用 TSQL 获取 SQL Azure 数据库版本和 Service_Objective

sql - 生成序列号

sql - 针对记录保存自定义属性值的最佳数据库设计

database - 用户为应用程序定义的数据模式

sql - 在批处理结束时检测到不可提交的事务。事务回滚