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