谁代表关系模型中的 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
完全参与子类型关系(即每个员工都必须有一个子类型),您也可以为此创建一个触发器。
我有这个例子
在秘书中,我需要创建和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
完全参与子类型关系(即每个员工都必须有一个子类型),您也可以为此创建一个触发器。