ER图中2个实体之间的2个关系
Posted
技术标签:
【中文标题】ER图中2个实体之间的2个关系【英文标题】:2 relationships between 2 entities in ER diagram 【发布时间】:2013-01-10 15:41:39 【问题描述】:我正在尝试绘制描述以下内容的 ER 图:
-“部门”雇用“员工”
-一些“员工”是“特殊的”并且有更多的属性
-一些“员工”(“特殊”和非特殊)是“经理”
-“经理”管理“部门”
所以,为了传达这一点,我有:
Department ------(employs)------- Employee-----<--------Special
| |
|-----------(manages)----------
据我了解,我不能在 2 个实体之间建立 2 个关系。那我该如何处理这种情况呢?
【问题讨论】:
【参考方案1】:没有理由不能在相同的两个实体之间建立多个关系,在这方面您的理解是错误的。
当然,您必须确定关系捕获不同的信息,并且您没有将单一关系的两个方面误认为是两个不同的关系。您的示例似乎很适合在两个实体之间建立两种关系。
【讨论】:
【参考方案2】:你好,看这个图,希望对你有帮助
【讨论】:
只有当Department
可以有多个Employee
作为管理者时,此解决方案才可接受。【参考方案3】:
更好的方法是在Employee表IsManager中添加一个位字段,所以如果他是经理,那就意味着他是他所在部门的经理。
【讨论】:
这种方法不允许员工管理一个部门,除非他也在该部门,并且它还允许多个员工在同一部门担任经理。 在下面查看我的其他答案 嘿,你用什么软件来制作图表? @el-aasi 我正在使用 Sql Management Studio。观看此youtube.com/watch?v=wMbPRHeYvMU【参考方案4】:您的雇员和管理人员的关系将是两个链接表。例如考虑如下表和字段:
Department
DepartmentID
DepartmentName
Employee
EmployeeID
EmployeeName
SpecialEmployee
EmployeeID
Attr1
Attr2
现在您可以继续链接员工和部门:
DepartmentEmploys
DepartmentEmploysID
DepartmentID
EmployeeID
ManagesDepartment
ManagesDepartmentID
EmployeeID
DepartmentID
现在你们的关系不会重叠或干扰。您的图表中似乎绘制的内容是正确的。两个实体之间可以存在不止一种关系。
【讨论】:
您的第一个链接表不是必需的。DepartmentEmploys
中的 DepartmentID
可以简单地是 Employee
表中的 FK。此外,仅当 Department
可以有 多个 Employee
作为管理器时,第二个链接表才可接受。【参考方案5】:
应该只有一个员工类如果您有多个员工类别,那么您可以创建员工类的子类。 家长:员工 第一个孩子:特殊员工 第二个孩子:普通员工
【讨论】:
以上是关于ER图中2个实体之间的2个关系的主要内容,如果未能解决你的问题,请参考以下文章