如何在ER-Diagram中创建角色层次结构?

时间:2016-03-05 09:02:35

标签: database entity-relationship erd entity-relationship-model

我知道有两个角色的递归关系,例如:
工作人员为经理工作
工人和经理都是员工的两个角色,我们这样展示: enter image description here

但是,如果员工的角色如下: 1.主任 经理
3.秘书 工人
并且较低层次中的每个角色都适用于较高等级的角色。

例如:
经理 适用于导​​演秘书为导演工作工作者为导演工作

然后,再次 秘书和工作人员也为经理工作,等等......

如何在ER图中显示?

2 个答案:

答案 0 :(得分:0)

您使用的是什么ERD符号?我不承认。它是否支持显示子类型?如果是这样,我会将Director,Manager,Secretary等设置为Employee的子类型,然后显示子类型之间的关系:

[Manager] --- <works for> ---> [Director]

答案 1 :(得分:0)

如果员工有职位(角色),那么我们这里有一个功能冗余属性/属性。这种冗余是员工的当前职位(角色)。当分解(分解)时,它将成为与雇员具有1-N关系的另一个实体。

在员工之间建立自我关系(递归关系)说明哪个员工为另一个员工工作,但不告诉您哪个角色管理什么。

另一方面,如果您需要定义并保持哪些职位(角色)相互适用,那么您需要创建一个角色实体,并为其创建一个递归关系,表达哪个位置控制另一个。完成后,您将员工与角色(后面,角色表中的行/注册)联系起来,定义哪个员工具有哪个角色的关系。

  

并且较低层次结构中的每个角色都适用于较高层次的角色   秩。

根据用户的职位(角色)以及他们之间创建的层次结构(角色),您可以了解哪个员工的工作方式。例如,这可以通过简单的SQL连接完成。

我认为这是你的情况。您不希望人员/员工之间,而是职位/角色之间的层次结构。一件事导致另一件事。使用这种方法,根据您在此处强加的基数,您甚至可以说一个或多个角色是否管理或由其他人管理。这有利于将来的维护。

如有任何疑问或疑问,请发表评论,我会回答。