如何映射这种关系?我遇到的问题是根据上面显示的 ER “每个员工都必须有一个主管”和“每个员工都必须由一个员工监督”。因此,在插入第一条记录时存在问题,因为没有其他员工 ID 可以作为主管插入。由于双方都是强制性的,因此在插入记录时必须同时具有 EmpID 和 SupvID。SupervID 不能为空,对吗?
员工表示例:
员工 EmpID | 姓名 | 出生日期 | 监督标识
如何映射这种关系?我遇到的问题是根据上面显示的 ER “每个员工都必须有一个主管”和“每个员工都必须由一个员工监督”。因此,在插入第一条记录时存在问题,因为没有其他员工 ID 可以作为主管插入。由于双方都是强制性的,因此在插入记录时必须同时具有 EmpID 和 SupvID。SupervID 不能为空,对吗?
员工表示例:
员工 EmpID | 姓名 | 出生日期 | 监督标识
ER 建模应该反映数据上的业务规则。“每个员工都必须受到某个员工的监督”的业务规则是不可能实施的,除非您允许一名员工自己监督自己或除非您允许监督链中的循环。
如果您的业务规则是不可能的,您的 ER 模型将反映这一事实。
假设您的组织有等级制度,谁来监督主管?谁监督超级监事?最终,您将拥有至少一名没有主管的员工。因此,您描述的业务规则是不现实的,数据库设计自然会出现问题。
由于是Many to 1
关系,Many(Supervise)方将携带其主管的 ID。所以 :
Employee (*ID*,supervisorID)