我在理解为什么从ER图到ERM的以下映射正确,或者更精确地完成时遇到问题。在给定的例子中,我们在项目,地点和人之间存在三元1:1:N关系。
每个实体都有一个主键(ProjectID,PlaceID,PersonID)。如果我理解这个图表是正确的,那么一个人和一个项目的组合就无法与多个地方相关联。此外,人和地方的组合只能与一个项目相关联。此外,特定地点的项目可以有多个人。
这种对如何阅读三元关系的理解导致了我的问题。我将ERM映射到以下RM:
Project(ProjectID) Place(PlaceID) Person(PersonID) Works(ProjectID, PersonID, PlaceID)
我现在在表 Works 中有两个候选键:( Place,PersonID)和(ProjectID,PersonID)。让我们选择第一个作为主键。我应该有一个正确的RM(文献告诉我),但我没有得到的是如何确保人和项目的相同组合与不同的地方无关?我不是必须说某个地方(ProjectID,PersonID)也是候选键或者这不是RM表示法的一部分吗?
ProjectID PersonID PlaceID 1 Marvin New York 1 Tom Paris 1 Marvin Tokyo
答案 0 :(得分:1)
个人和项目的组合无法与多个地方相关联。此外,一个人和一个地方的组合只能与一个项目相关联。
仔细阅读本文,您可以进一步说明每个人必须与一个项目和一个地方完全相关。由于这些是关系中唯一的其他实体,因此您可以安全地将Person(更具体地说是PersonID)作为此关系的主键。
(Place,PersonID)和(ProjectID,PersonID)都是关系的有效(非主要)键。您错误地认为您提供的示例条目是正确的。查看您的关系,每个personID和每个(Place,PersonID)或(ProjectID,PersonID)对的扩展名应该只在表中出现一次。因此,示例表与给定ER图的规则不匹配。