一元(递归)关系映射

时间:2013-11-08 12:34:05

标签: database database-design relational-database

enter image description here

如何映射这种关系?我所遇到的问题是根据ER显示的“每个雇员必须有一个主管”和“每个雇员必须由雇员监督”。因此,当插入第一条记录时,存在问题,因为没有其他员工ID可以作为主管插入。由于双方都是强制性的,因此在插入记录时必须同时具有EmpID和SupvID。并且SupervID不能为空吗?

示例员工表:

员工 EmpID |名字| dob | SupervID

3 个答案:

答案 0 :(得分:2)

ER建模应该反映数据的业务规则。除非您允许一名员工监督自己,或者除非您允许监管链中的循环,否则“每位员工必须由某些员工监督”的业务规则是不可能实施的。

如果您的业务规则不可行,您的ER模型将反映这一事实。

答案 1 :(得分:0)

假设您的组织有层级,谁负责监督主管?谁监督超级监督员?最终,您将至少有一名没有主管的员工。因此,您描述的业务规则不切合实际,数据库设计自然会出现问题。

答案 2 :(得分:0)

由于 Many to 1关系许多(Supervisee)方将承担其主管的ID。因此:

Employee (*ID*,supervisorID)