ER到关系模型:当子类有自己的PK时会发生什么?

时间:2017-03-18 18:08:00

标签: relational-database entity-relationship composite-primary-key conceptual-model

Conceptual Model |我无法找到任何具有它自己PK的子类的例子。我知道主键person_id是从超类继承而来的,但我不知道它是否与子类相结合。 PK,employee_id,用于在子类中创建复合PK'关系模型。

基本上,哪个是正确的?

员工( employee_id person_id ,姓名,工资)

OR

员工( employee_id ,person_id,姓名,薪水)

假设层次结构不是强制性的。

这只是一个帮助我理解这个过程的简单例子,所以不要担心概念模型的优点。

1 个答案:

答案 0 :(得分:0)

复合PK是一个坏主意 - 它将允许记录具有相同employee_id和不同person_id(或相同person_id和不同employee_id)的多个行。而是将employee_id设为PK,将person_id设为单独的唯一密钥。

从概念上讲,当子类型具有自己的标识时,可以将其视为与父实体集关系的不同实体集,而不是子类型。我不会在EER图中使用子类型表示法来表示这些情况。

最后,在讨论数据建模时,请避免使用OOP术语(子类化,继承)。 OOP用于在通信状态机方面分解系统,不应与分层,网络,实体关系或关系数据模型混淆。