谁代表关系模型中的 ISA 关系?

Who represent an ISA relationship in Relation Model?

我有这个例子

在秘书中,我需要创建和id吗?谁代表 WorkBench?

或者我只需要创建 1:n 关系?

我的模型有:

Engineer : eng_type, fk: employee_ssn

您的图表转换为以下 tables:

Employee (Ssn PK, Fname, Minit, Lname, Birth_date, Address, Job_type)
Secretary (Ssn PK/FK, Job_type FK, Typing_speed)
Technician (Ssn PK/FK, Job_type FK, Tgrade)
Engineer (Ssn PK/FK, Job_type FK, Eng_type)

Job_type 的域为 (Secretary, Technician, Engineer),枚举类型为 MySQL 中的 suitable。 table 子类型的 FK 约束是复合的:Secretary (Ssn, Job_type) REFERENCES Employee (Ssn, Job_type),其他两个子类型也是如此。您需要创建 suitable 索引。

MySQL 不支持检查约束,这本来可以很好地强制每个子类型的 Job_type。您可以创建一个触发器来执行相同的操作。有了它,复合 FK 约束可防止员工在任何时候拥有多个子类型 - Employee table 中的每条记录只能有一个 Job_type,并且只有子类型table与匹配的Job_type可以有匹配的记录。

如果您希望 Employee 完全参与子类型关系(即每个员工都必须有一个子类型),您也可以为此创建一个触发器。