如何将2个外键分配给一行?

use*_*330 1 sql database sql-server sql-server-2008

我有桌子rolesusers.该idroles是列的外键role的表users.
有两个角色:support和经理.如何指定为用户peter分配两个角色?

角色

| id | role    |
|----|---------|
| 1  | support |
| 2  | manager |
Run Code Online (Sandbox Code Playgroud)

用户

| id | user     | pass  | role (FK) |
|----|----------|-------|-----------|
| 1  | peter    | hash1 | 1,2       | <-- 2 foreign keys
| 2  | jennifer | hash2 | 2         |
Run Code Online (Sandbox Code Playgroud)

ver*_*lli 7

这是一个经典的多对多关系.一个用户可以拥有多个角色,一个角色可以分配给许多用户.您可能需要使用以下信息创建一个新的UserRole表:

id userId roleId
1    1      1
2    1      2
3    2      2
4 ...
Run Code Online (Sandbox Code Playgroud)

如果您不想要代理键,请删除id并使userId + roleId主键:

userId roleId
  1      1
  1      2
  2      2
Run Code Online (Sandbox Code Playgroud)