一尘不染

我们如何实现IS-A关系?

sql

我们通过将一个表的PK(作为FK)添加到
另一表来实现一对多关系。我们通过
在第三个表中添加2个表的PK来实现多对多关系。

我们如何实现IS-A关系?

实体分别是技术人员和行政人员。我
可以在表EMPLOYEE中使用一个额外的字段(id,名称,姓氏,
角色…AdminFields…,…TechFields…)

但我想探索IS-A选项。

编辑:我按照Donnie的建议做了,但没有角色字段。


阅读 172

收藏
2021-05-05

共1个答案

一尘不染

我按照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:

在此模型中,没有通用类型的员工。在这里,员工只能是管理人员或技术人员。

2021-05-05