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

时间:2016-08-01 15:27:43

标签: sql sql-server database sql-server-2008

我有表@Component({providers: [ServiceImpl]}) export class SomeComponent { constructor(private service: ServiceImpl) {} } rolesusers中的id是表roles中列role的外键。
有两个角色:users和经理。如何指定用户support被分配了两个角色?

角色

peter

用户

| id | role    |
|----|---------|
| 1  | support |
| 2  | manager |

2 个答案:

答案 0 :(得分:7)

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

id userId roleId
1    1      1
2    1      2
3    2      2
4 ...

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

userId roleId
  1      1
  1      2
  2      2

答案 1 :(得分:1)

我会添加第三个表 - user_roles - 包含role_id和user_id