将用户分组到虚拟名册上
我试图想出最简单/有用/有效的方法来使用 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
你会如何做才能使如此简单的事情变得非常灵活和高效。我真的觉得自己问这个问题很愚蠢。
I'm trying to come up with the most simple / userful / efficient method to group 3 users together using mysql.
To set the stage:
- X number of users in a list (all with int account_id's)
- mini groupings need to be created on a per user basis (user 1 wants to group with 220 for instance).
- Max 3 people per grouping (user 1 + user 220 + user 9123 = group full)
- Need to easily find if a user is in a group or not without looking in a bunch of columns
I'm stumped about how best to create a schema for this (so I can easily query my table to see if user is in a group, or if they can be added, or check for group space availability).
Anyone have any idea? My initial thought is schema like this (but it really seems too rigid):
Schema
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
How would you do it to make something this simple very flexible and efficient. I really feel stupid for asking.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
就我个人而言,我会使用 3 个表来解决这个问题。
这通过“用户到组”表链接形成多对多关系,显然您可以将 3 个以上的用户链接到一个组,因此您必须将新用户添加到组时,您的 PHP 逻辑会对此进行检查。
您可以简单地使用 SQL 连接来检索所需的所有数据并在 PHP 代码中过滤结果。
我希望这有帮助
亲切的问候
加里
Personally I would approach this by using 3 tables.
This forms a many to many relationship by linking through the "Users to groups" table, obviously you can have more that 3 users linked to one group so you will have to make your PHP logic check for this when adding a new user to a group.
You can simply use SQL joins to retrieve all the data required and filter the results in your PHP code.
I hope this helps
Kind regards
Garry