SQL Server数据库设计用户,组,角色,成员 [英] SQL Server database design users, groups, roles, memebers

查看:314
本文介绍了SQL Server数据库设计用户,组,角色,成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

到目前为止,我具有以下带有一个表的SQL Server数据库。

I have the following SQL Server db with one table so far.

----------------
|Users         | 
----------------
| UserId    PK |
|              |
| Other fields |
----------------

I需要再添加一些表,这不是问题,但这是目标。

I need to add few more tables to it which is not a problem but this is the goal:

----------------    ----------------    ----------------   ---------------- 
|Users         |    |Roles         |    | Teams       |    | Groups       | 
----------------    ----------------    ----------------   ---------------- 
| UserId    PK |    | RoleId    PK |    | TeamId    PK |   | GroupId   PK | 
|              |    |              |    |              |   |              | 
| Other fields |    | Other fields |    | Other fields |   | Other fields | 
----------------    ----------------    ----------------   ---------------- 

我需要什么要实现的目标如下:

What I need to achieve is the following:


  • 我有X个用户

  • I have X amount of users


  • User1

  • User2

  • UserX

我只有3个角色,供所有用户在所有团队和组中使用

I have 3 roles only for all users to use in all teams and groups


  • 管理员

  • 会员

  • 访问者

一个用户可以创建X支球队

One user can create X amount of teams


  • Team1

  • Team2

  • TeamX

一个用户可以创建X组群组

One user can create X amount of groups


  • Group1

  • Group2

  • GroupX

组和团队可以为用户分配具有不同角色(管理员,成员,访问者)的用户

Groups and Teams can have users assigned to them with different roles (Admin, Member, Visitor)

一个用户可以属于一个或多个团队或组

One user can belong to one or many team or groups

一个用户可以属于扮演一个或多个角色

One user can belong to one or many roles

我很难理解这些表之间的关系。

I have some hard time understanding the relation between those tables.

这是我根据@Robertas Valeika的回答设法实现的目标。

Here is what I managed to achieve based on the answer from @Robertas Valeika.


推荐答案

您还需要3个表。
UsersRoles
UsersRolesGroups
UsersRolesTeams。

You need 3 more tables. UsersRoles UsersRolesGroups UsersRolesTeams.

关系:

UsersRoles- UsersRolesGroups,
组-UsersRolesGroups

UsersRoles - UsersRolesGroups, Groups - UsersRolesGroups

UsersRoles-UsersRolesTeams,
Teams-UsersRolesTeams

UsersRoles - UsersRolesTeams, Teams - UsersRolesTeams

用户-UsersRoles,
角色-UsersRoles。

Users - UsersRoles, Roles - UsersRoles.

并将FK添加到用户组和团队表中,以标识组和团队的创建者。

And add FK to users in groups and teams tables to identify creator of group and team.

这篇关于SQL Server数据库设计用户,组,角色,成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆