我需要一些帮助来正确设计SQL数据库。下面是我想: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)管理员是唯一可以更新自己的计划的经理。此外,他 可以咨询大家计划,但只有人在他们的小组可以看到 他规划(于是,爱丽丝,Dave和奥斯卡基本上)
5)用户可以在多个组(看爱丽丝,Dave和奥斯卡这 是也在Z组)。当他们登录时,他们可以选择咨询 计划指定组,因此这不是问题。
我会做这样的:
TABLE User
id
nom
prenom
login
password
userGroup
TABLE group
id
groupName
groupManager
不过这显然不会工作,除非我可以设置一个数组作为groupManager值(我不擅长SQL,但我很肯定这是不可能的,不是吗?)
有人能指导我什么,可以让我达到我所期望的吗?
最简单的解决方案是使用不同的groupManager创建新的组条目 – FilipRistic
是的,但是如何让groupManager访问更多的组? – Will
例如,您可以在组表中包含三行,如下所示:1,GroupA,Oscar | 2,A组,Alice | 3,GroupB,Oscar – FilipRistic