2017-08-23 126 views
-1

我想为我的SQL数据库设计架构,其中用户可以具有多个角色,如管理员,测试人员和开发人员,他们将具有模块的可访问性(测试,开发,性能)他们的角色。 我试图设计三个表第一个用户,其中用户将有id和它的角色id,第二个角色,第三个将是模块,它将拥有用户和角色的外键,它将在其中分配权限到那个角色。对单个用户的多个角色

但是,当一个用户拥有多个角色

回答

0

失败似乎是一个基本的许多一对多的关系,我 - 所以你需要三个表:
两个Entity表和一个结合表。
你的情况应该有一个用户表,一个角色表和userToRole表。
模块/角色通常也是多对多的关系 - 因为许多角色可能连接到单个模块,并且许多模块可能连接到单个角色。

基本实现可能是这样的:

tblUser 
(
    User_id int primary key, 
    -- Other user related columns 
) 

tblRole 
{ 
    Role_Id int primary key, 
    -- Other role related columns 
} 

tblUserToRole 
{ 
    URT_User int Foreign key to tblUser, 
    URT_Role int Foreign key to tblRole, 
    Primary key (URT_User, URT_Role) 
} 
+0

但如果用户有多个角色将它不会有多个userToRole IDS –

+0

如果用户将有多行也将在UserToRole表中多条记录,每个都有不同的角色ID。这就是关系数据库中的多对多关系。 –

相关问题