在此ERD中:
证书实体是一个关联实体,它有一个唯一的标识符 - 证书编号。由于关联实体从其他实体继承其主键。关联实体的关键字段是每个端实体的主键是关联实体上的外键,并且两个组合在一起的外键成为主键(来自Textbook的概念)。
证书实体的主键是否应该是一个复合键,它包含三个部分:CertificateNumber,EmployeeID,CourseID?
或者它的主键是CertificateNumber,并将EmployeeID,CourseID作为该实体的属性??
我对这个问题感到困惑,因为通常关联实体没有自己的标识符(证书编号)。它只是将来自其他实体的主键组合为组合键(EmployeeID,CourseID),然后使用该组合键作为其标识符。
谢谢
亚历
答案 0 :(得分:1)
关联实体根据自己的属性没有主键。在第一个图中,您创建了一个具有函数依赖关系(Employee_ID, Course_ID) -> Date_Completed
的关联实体。请注意,虽然Employee_ID
和Course_ID
是表格中的列,但它们并非属性。 ER模型中的属性是从实体集到值集的映射。外键是关系的组成部分,不会映射到值集。
在第二个图表中,通过添加代理键,您的关联实体将成为与Employee
和Course
建立关系的常规实体。您的主键只有Certificate_Number
,但(Employee_ID, Course_ID)
上的唯一约束可能是一个好主意。关系由Certificate_Number -> Employee_ID
表中记录的功能依赖Certificate_Number -> Course_ID
和Certificate
表示。
您还可以将其保留为关联实体,并使用(Employee_ID, Course_ID)
作为主键,并使Certificate_Number
成为常规属性,尽管具有唯一约束(并且可能是自动递增)。在这种情况下,图表看起来像是你的第一个,但在关系上有一个额外的属性。