将用户分组到虚拟名册上

发布于 2024-11-09 12:10:56 字数 606 浏览 0 评论 0原文

我试图想出最简单/有用/有效的方法来使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

公布 2024-11-16 12:10:56

就我个人而言,我会使用 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

这通过“用户到组”表链接形成多对多关系,显然您可以将 3 个以上的用户链接到一个组,因此您必须将新用户添加到组时,您的 PHP 逻辑会对此进行检查。

您可以简单地使用 SQL 连接来检索所需的所有数据并在 PHP 代码中过滤结果。

我希望这有帮助

亲切的问候

加里

Personally I would approach this by using 3 tables.

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文