Pet*_*son 1 sql database database-design
我们假设我有一个角色表,例如,
Roles
-----
ID Name
0 Salesman
1 Client
2 Manager
Run Code Online (Sandbox Code Playgroud)
我们还假设这些角色不是相互排斥的:也就是说,一个人可以同时成为推销员,客户和经理.
如果我有一个Person包含Role字段的表,我怎么能在Roles表中引用多行?
您引入了一个引用两个原始表的新表:
CREATE TABLE PersonRoles (
PersonID int not null,
RoleID int not null,
constraint PK_PersonRoles PRIMARY KEY (PersonID,RoleID),
constraint FK_PersonRoles_Persons FOREIGN KEY (PersonID) references Person (ID),
constraint FK_PersonRoles_Roles FOREIGN KEY (RoleID) references Role (ID)
)
Run Code Online (Sandbox Code Playgroud)
假设多重性m:n,则上述是正确的.我做了一个假设(未在您的问题中列出),不止一个人可以是例如推销员.