我正在尝试想出最简单/有用/高效的方法来使用 mysql 将 3 个用户分组在一起。
设置舞台:
- 列表中的 X 个用户(所有用户都具有 int account_id)
- 需要基于每个用户创建迷你分组(例如,用户 1 想要分组 220)。
- 每组最多 3 人(用户 1 + 用户 220 + 用户 9123 = 组已满)
- 需要在不查看一堆列的情况下轻松找到用户是否在组中
我不知道如何最好地为此创建一个模式(这样我就可以轻松地查询我的表以查看用户是否在一个组中,或者他们是否可以添加,或者检查组空间可用性)。
有人知道吗?我最初的想法是这样的架构(但它确实看起来太死板了):
架构
GROUP_ID USER1 USER2 USER3 LASTUPDATE
1 1 220 null 5/25/2011 20:00:00
2 300 2 4 5/25/2011 20:00:00
您将如何做才能使如此简单的事情变得非常灵活和高效。我真的觉得问的很蠢。
就我个人而言,我会使用 3 个表来解决这个问题。
Users Table
user_id user_name ..... last_update
Groups Table
group_id group_name ......
Users to groups Table
user_to_group_id user_id group_id
这通过"Users to groups" 表链接形成多对多关系,显然您可以将超过 3 个用户链接到一个组,因此您将在向组中添加新用户时,必须让您的 PHP 逻辑检查这一点。
您可以简单地使用 SQL 连接来检索所有需要的数据并在您的 PHP 代码中过滤结果。
希望对你有帮助
亲切的问候
加里
我是一名优秀的程序员,十分优秀!