【发布时间】:2018-08-10 02:04:13
【问题描述】:
我们今天讨论了与 W3 讲座案例研究有关的讨论,讨论每种情况我们需要多少个实体。我有一些困惑如下:
案例 1) 一名员工被分配为团队成员。超过 5 名成员的团队将有一名团队负责人。小组成员选举小组组长。列出您可以在上述陈述中识别的实体?在这种情况下,如果我们不为上述要求创建 2 个实体,我们需要为每个员工添加另外两个属性,这可能会导致以后出现异常问题。因此,我们需要有如下 2 个实体:
EMPLOYEE (PK is employeeId) (0-M)----------------(0-1) TEAM (PK teamId&employeeId) -> 2 个实体
案例 2) 公司还引入了指导计划,新员工将与在公司工作时间较长的人配对。”您需要多少个实体来为指导计划建模?
Lecturer 的答案是 1。这样一来,我们必须为每个 Employee 再添加 2 个属性,mentorRole(Mentor 或 Mentee)和 pairNo(以区分不同的配对并知道谁指导谁),不是吗? ?
我的问题是为什么我们不能创建一个名为 MENTORING 的新实体,它类似于 Q1 中的 TEAM?为什么我们只能在多对多关系的情况下这样做?
EMPLOYEE (PK 是employeeId) (0-M)----------------(0-1) TEAM (PK 是pairNo&employeeId) -> 2 个实体
提前谢谢你
【问题讨论】:
-
给猫剥皮的方法有很多种。在第一种情况下,我将 Employee、Team 和 TeamMember 作为 3 个实体,在 Team 中具有可选的 TeamLeader 列,或者在 TeamMember 表上具有 IsLeader 标志,并且对 TeamID、IsLeader 具有唯一约束。
-
关于第二个问题,我可能只是在 Employee 表中添加一列来包含 MentorID,这是对另一个 Employee 行(员工的导师)的引用。
-
实体 vs 关系 vs 属性是 E-R 模型的基础强加的不必要的区别。关系模型仅表示零个或多个值的关系,并且总是有一些实体可通过每个可能的查询结果的每个超键/唯一子行来识别。 (例如,涉及左撇子无薪雇员的周二下午婚姻的婚姻成本配对。)满足您所遵循的方法的规则。不要指望一个独特的解决方案。
标签: database entity relationship relational