Database 2 ER图中2个实体之间的关系
我试图绘制一个ER图,描述以下内容: -“部门”雇用“员工” -一些“员工”是“特殊的”,具有更多的属性 -有些“雇员”(“特殊”和“非特殊”)是“经理” -“经理”管理“部门” 因此,为了表达这一点,我有: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
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。此外,只有当部门
可以有多个员工
作为经理时,才可以使用第二个链接表。