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がログインするときの の例では、アリスとキャロルのプランニング を自分自身に追加することができます。
2)マネージャは、自分のグループではなく、自分のグループの人のタイムテーブルを更新できます。だから アリスはボブとキャロルを管理でき、Daveはイブとマロリーを管理できます。オスカー はTrudyとIsaacを管理し、最後に管理者はアリス、デイブと オスカー計画を管理します。
3)アリスがデイブが彼のグループを管理するのに役立つだろうということで合意された、 ので、アリスはデイブ・イブとマロリーを管理する(ことはできませんが)、彼女はまだ属するようイブと マロリーがアリスの計画を見ることができませんグループA.
4)管理者は自分の計画を更新できる唯一のマネージャです。また、彼は 計画誰に相談することができますが、そのグループ内で唯一の人々が 彼の計画を見ることができる(したがって、基本的アリス、デイブとオスカー)
5)ユーザーが複数のグループにすることができ( であることをアリス、デイブとオスカーを見てグループZでも)。指定されたグループの計画を に照会して、ログインするときに問題がないように選択することができます。
私が何か行っているでしょう。(私はSQLが得意ではないんだけど、私はかなりだ
TABLE User
id
nom
prenom
login
password
userGroup
TABLE group
id
groupName
groupManager
をしかし、私はグループマネージャーの値として配列を設定することができない限り、これは明らかに動作しません。それは不可能なのでしょうか?)
誰かが私が私の期待するところに到達できるように案内してくれますか?だから、
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
)
:、私はこのようなものを使用することになり、あなたのデザイン以来
最も簡単な解決策は、異なるグループマネージャーを使用して新しいグループエントリを作成することです。 – FilipRistic
ええ、groupManagerがそのグループ以外のものにアクセスするにはどうしますか? – Will
たとえば、次のようにグループテーブルに3つの行を含めることができます。1、GroupA、Oscar | 2、グループA、アリス| 3、GroupB、Oscar – FilipRistic