繁体   English   中英

SQL数据库设计 经理与小组之间的角色关系

[英]SQL Database Design | Roles relationship between managers and group

我需要一些帮助来正确设计SQL数据库。 这是我想要的:

**Group A :**

- Alice (Manager)
- Bob
- Carol

**Group B :**

- Dave (Manager)
- Eve
- Mallory

**Group C :** 

- Oscar (Manager)
- Trudy
- Isaac

**Group Z**

 - Admin (Manager)
 - Alice
 - Dave
 - Oscar

一些限制:

1)每个成员都可以查看其小组中人员的计划。 例如,鲍勃(Bob)登录时,可以咨询自己添加的爱丽丝(Alice)和卡罗尔(Carole)的计划。

2)经理可以更新小组成员的时间表,但不能更新他们自己的时间表! 因此,Alice可以管理Bob和Carol,Dave可以管理Eve和Mallory,Oscar可以管理Trudy和Isaac,最后Admin可以管理Alice,Dave和Oscar计划。

3)已经达成共识,爱丽丝将帮助戴夫管理自己的小组,因此爱丽丝可以管理夏娃和马洛里(但不能管理戴夫),但是夏娃和马洛里看不到爱丽丝的计划,因为她仍然属于A组。

4)管理员是唯一可以更新自己计划的经理。 他还可以咨询每个计划的人,但只有小组中的人才能看到他的计划(所以基本上是Alice,Dave和Oscar)

5)用户可以在多个组中(也可以在Z组中查看Alice,Dave和Oscar)。 他们将在登录时选择咨询指定小组的计划,因此这不是问题。

我会做类似的事情:

TABLE User
id
nom
prenom
login
password
userGroup

TABLE group
id
groupName
groupManager

但这显然是行不通的,除非我可以将Array设置为groupManager的值(我不擅长SQL,但我很确定这是不可能的,不是吗?)

有人可以指导我做一些能让我达到期望的事情吗?

由于您的设计要求用户和组之间存在多对多关系(一个组包含多个用户;一个用户可以位于多个组中),因此我将使用以下方式:

User
(
    ID
    , Name
    , Login
    , Password
    , etc.
)

Group
(
    ID
    , Name
    , etc.
)

Group_Role
(
    ID
    , Role_Description
    , etc.
)
User_Group_Role
(
    ID
    , User_ID          -- foreign key to User.ID
    , Group_ID         -- foreign key to Group.ID
    , Group_Role_ID    -- foreign key to Group_Role.ID
)

因此,您的用户表将包含

 1 | Alice
 2 | Bob
 3 | Carol
 4 | Dave
 5 | Eve
 6 | Mallory
99 | Admin

,您的网上论坛表格将包含

 1 | Group A
 2 | Group B
99 | Group Z

,您的Group_Roles表将包含以下内容

 1 | Consult
 2 | Manage                 -- cannot manage self
 3 | Assist
 4 | SuperManage                -- can manage self

,最后是User_Group_Role表:

1 | 1 | 1 | 2               -- Alice manages Group A
2 | 2 | 1 | 1               -- Bob consults in Group A
3 | 3 | 1 | 1               -- Carol consults in Group A
4 | 4 | 2 | 2               -- Dave manages Group B
5 | 1 | 2 | 3               -- Carol assists with Group B
6 | 5 | 2 | 1               -- Eve consults in Group A
7 | 6 | 2 | 1               -- Mallory consults in Group A
etc.

那有意义吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM