ER图中2个实体之间的关系

时间:2013-01-26 23:41:34

标签: database database-design entity-relationship database-schema

我正在尝试绘制描述以下内容的ER图:

- “部门”雇用“员工”

- 有些“员工”是“特殊”并且具有更多属性

- 一些“员工”(“特殊”和非特殊)是“经理”

- “经理”管理“部门”

所以,为了传达这一点,我有:

Department ------(employs)------- Employee-----<--------Special
      |                             |
      |-----------(manages)----------

根据我的理解,我不能在2个实体之间建立2个关系。那我怎么处理这种情况呢?

5 个答案:

答案 0 :(得分:11)

没有理由你不能在同一个实体之间建立多重关系,你在这方面的理解是错误的。

当然,你必须确定这些关系会捕获不同的信息,并且你不会将单一关系的两个方面误认为是两种不同的关系。您的示例似乎是在两个实体之间建立两种关系的良好候选者。

答案 1 :(得分:3)

Database Diagram

嗨伙伴看这个图,希望有所帮助

答案 2 :(得分:3)

Diagram更好的方法是在Employee表IsManager中添加一个位字段,所以如果他是一名经理,这意味着他是他所在部门的经理。

答案 3 :(得分:1)

您的雇佣和管理关系将是两个连接表。例如考虑下面的表格和字段:

Department
   DepartmentID
   DepartmentName

Employee
   EmployeeID
   EmployeeName

SpecialEmployee
   EmployeeID
   Attr1
   Attr2

现在您可以继续并将Employee和Department链接起来:

DepartmentEmploys
     DepartmentEmploysID
     DepartmentID
     EmployeeID


ManagesDepartment
     ManagesDepartmentID    
     EmployeeID
     DepartmentID

现在您的关系不会重叠或干扰。您的图表中似乎绘制的内容是正确的。两个实体之间可以有多个关系。

答案 4 :(得分:0)

应该只有一个类别的员工如果您有多个类别的员工,则可以将Employee类设为子类别。 父母:雇员 第一个孩子:特别雇员 第二个孩子:普通员工