【发布时间】:2010-12-05 21:39:18
【问题描述】:
我们通过将一个表的 PK 作为 FK 添加到另一个表来实现一对多关系。 我们通过将 2 个 Table 的 PK 添加到第三个 Table 来实现多对多关系。
我们如何实现 IS-A 关系?
实体是 TECHNICIAN 和 ADMINISTRATIVE,两者都是 EMPLOYEE。 我可以在表格中使用一个额外的字段 EMPLOYEE(id, name, surname, role, ...AdminFields..., ...TechFields...)
但我想探索 IS-A 选项。
编辑:我按照 Donnie 的建议做了,但没有角色字段。
【问题讨论】:
-
IS-A 本身并不是一种关系。行的标识通常由包含它的表的名称定义。例如。名为
employeesIS-A 员工的表中的一行。如果要添加包含TECHINICIAN、ADMINISTRATIVE等的employee_type枚举,那很好。但该表中的每一行仍然是员工。 -
@Asaph - 我认为这意味着映射到子类,例如通过 ORM。在这种情况下,Technician 将是域模型中 Employee 的子类,并且 Technician 和 Employee 实体之间将存在 IS-A 关系。也就是说,我不认为组织中的角色最好使用继承来建模。
-
@Asaph - 如果 TECHNICIAN 有许多具体属性,而 ADMINISTRATIVE 没有(并且相反),你会怎么做?
标签: sql database database-design class-table-inheritance