10

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

-“部门”雇用“员工”

-一些“员工”是“特殊的”,有更多的属性

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

-“经理”管理“部门”

因此,为了传达这一点,我有:

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

据我了解,我不能在 2 个实体之间建立 2 个关系。那我该如何处理这种情况呢?

4

5 回答 5

16

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

当然,您必须确定这些关系捕获了不同的信息,并且您没有将单一关系的两个方面误认为是两个不同的关系。您的示例似乎很适合在两个实体之间建立两种关系。

于 2013-01-26T23:58:07.650 回答
4

数据库图

嗨,朋友看这张图,希望对你有帮助

于 2013-01-27T00:03:54.747 回答
4

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

于 2013-01-27T00:13:51.200 回答
1

您的雇员和管理人员的关系将是两个链接表。例如,考虑如下表和字段:

Department
   DepartmentID
   DepartmentName

Employee
   EmployeeID
   EmployeeName

SpecialEmployee
   EmployeeID
   Attr1
   Attr2

现在您可以继续链接员工和部门,如下所示:

DepartmentEmploys
     DepartmentEmploysID
     DepartmentID
     EmployeeID


ManagesDepartment
     ManagesDepartmentID    
     EmployeeID
     DepartmentID

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

于 2013-01-27T00:03:05.277 回答
-2

应该只有一类员工如果您有多个类别的员工,那么您可以创建员工类的子类。
父母:员工
第一个孩子:特殊员工
第二个孩子:普通员工

于 2019-07-19T05:45:16.377 回答