单个用户

时间:2017-08-23 05:42:32

标签: sql database relational-database

我想为我的SQL数据库设计一个模式,其中用户可以拥有多个角色,如admin,tester,developer,他们将根据自己的角色获得模块的可访问性(测试,开发,性能)。 我尝试先设计三个用户,其中用户将拥有id及其角色id,第二个是角色,第三个将是具有用户和角色的外键的模块,在该模板中,用户将分配权限那个角色。

但是当用户有多个角色时它会失败

1 个答案:

答案 0 :(得分:0)

对我来说似乎是一个基本的多对多关系 - 所以你需要三张桌子:
两个实体表和一个连词表 在您的情况下,应该有一个用户表,一个角色表和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)
}