所以我发现我需要做一个专业化层次结构模型,但是我不太清楚如何编码它。我找到了一些关于如何进行泛化的信息。
我的问题是:编码方式相同但表达方式不同吗?
我们以此为例:
CREATE TABLE Employee(
EmpNo INTEGER,
EmpName VARCHAR(30),
EmpHireDate DATE,
CONSTRAINT PKEmployee PRIMARY KEY (EmpNo)
);
CREATE TABLE SalaryEmp(
EmpNo INTEGER,
EmpSalary DECIMAL(10,2),
CONSTRAINT PKSalaryEmp PRIMARY KEY (EmpNo),
CONSTRAINT FKSalaryEmp FOREIGN KEY (EmpNo) REFERENCES Employee ON DELETE CASCADE
);
CREATE TABLE HourlyEmp(
EmpNo INTEGER,
EmpRate DECIMAL(10,2),
CONSTRAINT PKHourlyEmp PRIMARY KEY (EmpNo),
CONSTRAINT FKHourlyEmp FOREIGN KEY (EmpNo) REFERENCES Employee ON DELETE CASCADE
);
这是应该如何编码吗? ERD 应该是这样的?
这里时常有人问有关专业化-泛化的问题。您可以在 class-table-inheritance 信息选项卡中获得一般答案。您还可以查看之前问题的答案,例如如何在关系数据库中进行继承建模?。