在 RM 中表示多个候选键

Representing multiple candidate keys in RM

我无法理解为什么以下从 ER 图到 ERM 的映射是正确,或者更准确地说完整[=27] =].在给定的示例中,我们在项目、地点和人员之间具有三元 1:1:N 关系。

每个实体都有一个主键(ProjectID、PlaceID、PersonID)。如果我理解这张图更正 一个人和一个项目的组合不能关联到多个地方。此外,一个人和一个地方的组合只能与一个项目相关联。此外,在特定地点的项目可以有多个人。

这种对如何解读三元关系的理解导致了我的问题。我将 ERM 映射到以下 RM:

Project(ProjectID)
Place(PlaceID)
Person(PersonID)
Works(ProjectID, PersonID, PlaceID)

我现在在 table Works 中有两个候选键:(Place, PersonID) 和 (ProjectID, PersonID)。让我们选择第一个作为主键。然后我应该有一个正确的 RM(文献告诉我)但是我没有得到的是如何确保相同的人和项目组合不与不同的地方相关联?难道我不必在某处说 (ProjectID, PersonID) 也是候选键,或者这不是 RM 表示法的一部分?

ProjectID   PersonID   PlaceID
1           Marvin     New York
1           Tom        Paris
1           Marvin     Tokyo

the combination of a person and a project can not get associated to more than one place. And in addition the combination of a person and a place can only be associated with one project.

仔细阅读本文,您可以进一步说明每个人都必须与一个项目和一个地点相关。由于这些是关系中唯一的其他实体,您可以安全地将 Person(更具体地说是 PersonID)作为此关系的主键。

(Place, PersonID) 和 (ProjectID, PersonID) 都是关系的有效(非主)键。您错误地认为您提供的示例条目是正确的。查看您的关系,每个 personID,以及每个 (Place, PersonID) 或 (ProjectID, PersonID) 对,应该只在 table 中出现一次。因此,示例 table 不符合给定 ER 图的规则。