关联实体的主键

Primary Key of Associative Entity

在此 ERD 中:

证书实体是一个关联实体,它有一个唯一的标识符——证书编号。由于关联实体从其他实体继承其主键。关联实体的关键字段是每个端实体的主键是关联实体上的外键,两个外键组合在一起成为主键(教科书上的概念)。

Certificate Entity的主键是否应该是复合键,包含三部分:CertificateNumber、EmployeeID、CourseID?

或者它的主键是CertificateNumber,把EmployeeID,CourseID作为这个实体的属性??

我对这个问题感到困惑,因为关联实体通常没有自己的标识符(证书编号)。它只是将来自其他实体的主键合并为复合键(EmployeeID、CourseID),然后使用该复合键作为其标识符。

谢谢

亚历克斯

关联实体没有基于其自身属性的主键。在您的第一个图表中,您创建了一个具有函数依赖性 (Employee_ID, Course_ID) -> Date_Completed 的关联实体。请注意,虽然 Employee_IDCourse_ID 是 table 中的列,但它们不是属性。 ER 模型中的属性是从实体集到值集的映射。外键是关系的组成部分,不映射到值集。

在你的第二个图表中,通过添加代理键,你的关联实体变成了与 EmployeeCourse 有关系的常规实体。您的主键只是 Certificate_Number,但对 (Employee_ID, Course_ID) 的唯一约束可能是个好主意。这些关系由 Certificate_Number -> Employee_IDCertificate_Number -> Course_ID 中记录的函数依赖关系表示 Certificate table.

您还可以将其保留为关联实体并使用 (Employee_ID, Course_ID) 作为主键并使 Certificate_Number 成为常规属性,尽管具有唯一约束(并且可能自动递增)。在这种情况下,图表看起来像您的第一个图表,但在关系上有一个额外的属性。