跪求问:SQL一个表的外键关联两个表的主键怎么做?

比如我有一个在职员工表,有一项是主键Employee_ID(比如:1,2,3);还有一个退休员工表,也有一项是主键也叫Employee_ID(比如4,5,6);另外我有一个企业员工留言表,有一项是还叫作Employee_ID

如何把在职员工表和退休员工表的俩Employee_ID,关联到企业员工留言表?

数据建模时就有点问题,应该是在职员工和退休员工在一个总员工表‘employee’里,然后有一列‘在职’来区分员工是否在职。
当然分两个表也许是考虑到在职员工和退休员工的列属性不同,那么可以先按照上面说的建一个总表employee,主键还是Employee_ID,但是包括所有员工。然后企业员工留言表里的Emplyee_ID是一个外键(关联到员工总表employee的主键Employee_ID)。
请采纳,谢谢追问

确实是在职员工和退休员工的属性不一样;若合为一张总表,比如工作楼层,退休员工没有这一项会造成很多空格;比如目前职位,退休员工也是空的等等问题。另外总表里面总会有人断断续续离职,这样看表也不方便,在职人员记录中间穿插着离职人员的问题也会出现。

追答

员工号还是唯一的吧?如果是唯一,那么就新建一个总表employee,但是只要员工号和一个‘在职’列作为标记,这样还是能追溯到具体哪个表的哪条记录。
然后企业员工留言表里的Emplyee_ID是一个外键(关联到员工总表employee的主键Employee_ID)。
其实一般数据库设计是宁可有冗余(当然冗余不能太多)也不要分表的,怕看表不方便的话看表查记录时过滤一下‘在职’与否就可以了(excel里都可以过滤),很方便的。

追问

这样创建包含所有employee ID总表就完全没问题了 今日最佳满分 万分感谢了

温馨提示:答案为网友推荐,仅供参考
相似回答