小编典典

强实体vs弱实体MYSQL

sql

对于MySQL / SQL的分配,我需要创建2个不同的表以显示 强实体和弱实体之间差异

有人可以向我展示我如何做到这一点的例子吗?

我知道一个强实体可以不存在另一个实体而存在,而对于一个弱实体却不是这样。因此,例如,一个强大的实体如下所示:

Employee(EmpNo, Name, EmpId)

但是我不确定如何创建一个显示差异的表。


阅读 365

收藏
2021-04-28

共1个答案

小编典典

想象一下Employee带有以下各列的表:

EmployeeID , EmpName, EmpDept,...

Managers表如下所示:

ManagerID, EmployeeID(foreign-key),ManagerName,...

现在,每个 Manager都是一个Employee
,因此,如果表中完全有一个Manager,则Manager表中将有相同的条目Employee

“是” 关系得以维持: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)
)
2021-04-28