0

情况如下:
用户创建组cars
用户 2、用户 3、用户 4 和用户 5 要求加入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

为用户创建一个表可能更明智,这样您就可以根据需要向用户添加更多信息。然后创建一个 Groups 表,包含 groupid、description、image、status 等。最后,创建一个表将它们映射在一起,使用两个外键——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 回答