如何在另一个表中引用多行?

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表中引用多行?

Dam*_*ver 7

您引入了一个引用两个原始表的新表:

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,则上述是正确的.我做了一个假设(未在您的问题中列出),不止一个人可以是例如推销员.