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

Database 2 ER图中2个实体之间的关系,database,database-design,entity-relationship,database-schema,Database,Database Design,Entity Relationship,Database Schema,我试图绘制一个ER图,描述以下内容: -“部门”雇用“员工” -一些“员工”是“特殊的”,具有更多的属性 -有些“雇员”(“特殊”和“非特殊”)是“经理” -“经理”管理“部门” 因此,为了表达这一点,我有: Department ------(employs)------- Employee-----<--------Special | | |-----------(manages)---------- D

我试图绘制一个ER图,描述以下内容:

-“部门”雇用“员工”

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

-有些“雇员”(“特殊”和“非特殊”)是“经理”

-“经理”管理“部门”

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

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

Department-----(employees)---employeer------employeer-----你没有理由不能在同一个实体之间建立多个关系,你在这方面的理解是错误的


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

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

Department
   DepartmentID
   DepartmentName

Employee
   EmployeeID
   EmployeeName

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

DepartmentEmploys
     DepartmentEmploysID
     DepartmentID
     EmployeeID


ManagesDepartment
     ManagesDepartmentID    
     EmployeeID
     DepartmentID
现在你们的关系不再重叠或干扰。你的图表上画的似乎是正确的。两个实体之间可以有多个关系。


您好,请观看此图表,希望它能有所帮助。

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

应该只有一个员工类别如果您有多个员工类别,则可以创建Employee类的子类。
家长:员工
第一个孩子:特殊员工

第二个孩子:普通员工

这种方法不允许员工管理部门,除非他也在该部门,它还允许多个员工担任同一部门的经理。请查看下面我的另一个答案您使用什么软件制作图表?@el aasi我使用的是Sql Management Studio。注意:只有当一个
部门
可以有多个
员工
担任经理时,此解决方案才是可接受的。不需要您的第一个链接表。
departmentemployees
中的
DepartmentID
可以是
Employee
表中的FK。此外,只有当
部门
可以有多个
员工
作为经理时,才可以使用第二个链接表。