对于MySQL / SQL的分配,我需要创建2个不同的表以显示 强实体和弱实体之间 的 差异 。
有人可以向我展示我如何做到这一点的例子吗?
我知道一个强实体可以不存在另一个实体而存在,而对于一个弱实体却不是这样。因此,例如,一个强大的实体如下所示:
Employee(EmpNo, Name, EmpId)
?
但是我不确定如何创建一个显示差异的表。
想象一下Employee带有以下各列的表:
Employee
EmployeeID , EmpName, EmpDept,...
该Managers表如下所示:
Managers
ManagerID, EmployeeID(foreign-key),ManagerName,...
现在,每个 Manager都是一个Employee ,因此,如果表中完全有一个Manager,则Manager表中将有相同的条目Employee。
Manager
在 “是” 关系得以维持:Each manager is a Employee but each Employee is not a Manager
Each manager is a Employee but each Employee is not a Manager
该查询将类似于:
CREATE TABLE Employee ( EmployeeID int NOT NULL, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255), PRIMARY KEY (EmployeeID) ) CREATE TABLE Managers ( ManagerID int NOT NULL, EmployeeID int NOT NULL, .. ... FOREIGN KEY (EmployeeID) REFERENCES Employee(EmployeeID) )