我们通过将一个表的PK(作为FK)添加到 另一表来实现一对多关系。我们通过 在第三个表中添加2个表的PK来实现多对多关系。
我们如何实现IS-A关系?
实体分别是技术人员和行政人员。我 可以在表EMPLOYEE中使用一个额外的字段(id,名称,姓氏, 角色…AdminFields…,…TechFields…)
但我想探索IS-A选项。
编辑:我按照Donnie的建议做了,但没有角色字段。
我按照Donnie的建议做了,但是没有角色字段,因为它 使事情变得复杂。这是最终的实现:
DDL:
CREATE TABLE Employee ( ast VARCHAR(20) not null, firstname VARCHAR(200) not null, surname VARCHAR(200) not null, ... PRIMARY KEY(ast) ); CREATE TABLE Administrative ( employee_ast VARCHAR(20) not null REFERENCES Employee(ast), PRIMARY KEY(employee_ast) ); CREATE TABLE Technical ( employee_ast VARCHAR(20) not null REFERENCES Employee(ast), ... PRIMARY KEY(employee_ast) );
ER Diagram:
在此模型中,没有通用类型的员工。在这里,员工只能是管理人员或技术人员。