0

ケースは次のとおりです。
ユーザーがグループを作成しますcars
User2、user3、user4、user5が参加を要求しcarsます。
ユーザーがuser2、user3、user4、user5を承認します

このようなテーブルが必要です:

Leader (userid)
, description
, image
, Users (array { userid1, userid2, userid3, userid4 } )

user_groups 
username, groupid, status

これは次のようになります

User2 1 0 

ステータス0は、user2がグループへの招待を保留していることを意味し、ステータス1は彼がグループに参加していることを意味します。次に、誰かがusers2プロファイルにアクセスした場合、私はクエリを実行します

select * from user_groups where username=$username

これはそれを行うための最もクリーンな方法ですか?

4

2 に答える 2

1

必要に応じて、ユーザーにさらに情報を追加できるように、ユーザー用のテーブルを作成する方がおそらく賢明でしょう。次に、グループ ID、説明、イメージ、ステータスなどを含むグループ テーブルを作成します。最後に、2 つの外部キー (Groups からの groupid と Users からの userid) を新しい主キーとして使用して、それらを一緒にマップするテーブルを作成します。ここでは、彼らがグループ リーダーであるかどうかのバイナリ値も入力します。

于 2013-01-28T15:13:53.603 に答える
1

配列は決して最もクリーンな方法ではありません。単純にやって何が悪い

User(UserID, Name)
Group(GroupID, LeaderUserID, Name)
UserGroup(UserID, GroupID, Status)

または、代わりに DevinFalgoust から盗むには:

User(UserID, Name)
Group(GroupID, Name)
UserGroup(UserID, GroupID, Status, IsLeader)
于 2013-01-28T17:02:24.557 に答える