一个属性可以有多个关系

时间:2013-08-18 15:00:15

标签: database-design relational-database

也许这不是解决这个问题的最佳方法......但如果是这样我想查看,因为我没有看到任何EER模型显示这一点。

假设你有实体员工,经理和工人

员工是经理或员工

员工(用户名PK,密码,姓名)

经理(manager_ID PK,轮班,部门)

工人(worker_ID PK,hour_per_week,manager_ID FK)

我可以将ID作为属性插入员工,这是员工或员工的主要关键。

或者我将用户名作为外键添加到经理和工作人员

基本上,我如何根据员工的身份将员工与员工和经理联系起来?

1 个答案:

答案 0 :(得分:1)

  

我可以将ID作为属性插入员工,这是员工或员工的主要关键。

没有。员工列中'1'的主键指的是哪个?经理ID或员工ID?两个表都可能包含ID为1的条目,因此除非您添加is_manager之类的其他列,否则这不是区分因素。

  

或者我将用户名作为外键添加到经理和工作人员。

是 - 员工PK应为manageremployees的FK。事实上,由于您可以重新使用员工PK,因此您不需要为经理或员工提供额外/单独的PK。

此外,即使您使用'用户名'作为PK,如果可以更改它,最好将PK保留为数字。