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

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

如何把在职员工表和退休员工表的俩Employee_ID,关联到企业员工留言表?
展开
 我来答
百度网友75e0ae8
2018-04-26 · TA获得超过5537个赞
知道大有可为答主
回答量:2491
采纳率:91%
帮助的人:1409万
展开全部
数据建模时就有点问题,应该是在职员工和退休员工在一个总员工表‘employee’里,然后有一列‘在职’来区分员工是否在职。
当然分两个表也许是考虑到在职员工和退休员工的列属性不同,那么可以先按照上面说的建一个总表employee,主键还是Employee_ID,但是包括所有员工。然后企业员工留言表里的Emplyee_ID是一个外键(关联到员工总表employee的主键Employee_ID)。
请采纳,谢谢
更多追问追答
追问
确实是在职员工和退休员工的属性不一样;若合为一张总表,比如工作楼层,退休员工没有这一项会造成很多空格;比如目前职位,退休员工也是空的等等问题。另外总表里面总会有人断断续续离职,这样看表也不方便,在职人员记录中间穿插着离职人员的问题也会出现。
追答
员工号还是唯一的吧?如果是唯一,那么就新建一个总表employee,但是只要员工号和一个‘在职’列作为标记,这样还是能追溯到具体哪个表的哪条记录。
然后企业员工留言表里的Emplyee_ID是一个外键(关联到员工总表employee的主键Employee_ID)。
其实一般数据库设计是宁可有冗余(当然冗余不能太多)也不要分表的,怕看表不方便的话看表查记录时过滤一下‘在职’与否就可以了(excel里都可以过滤),很方便的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式