mysql - 同一表的主键列表以逗号分隔,如何管理这样的m​​ysql表?

标签 mysql sql relational-database

我有一个Users 表,其主键为user_id。出于某些功能目的(它通常创建用户组),它有一个 grouped_with 字段,其中包含 user_ids 列表,以逗号分隔。这些user_ids是同一个表的主键。我将其保留为逗号分隔列表。还有其他选择吗?是否还需要其他表来建立关系?如果是这样,怎么办?

或者在同一个表中,如何管理?有没有优化的解决方案?我正在使用关系数据库。 提前致谢。

最佳答案

我可能过度简化了您的要求,但这是一种解决方案(尽管很简单):

t_users
user_id | other details
--------+--------------
78      |
90      |
18      |
22      |
45      |

t_groups
group_id | other details (there might be none)
---------+--------------
1        |
2        |
3        |

t_group_users (shows which users belong to each group)
group_id | user_id
------------------
1        | 18
1        | 22
1        | 78
1        | 90

(after user_id 45 joins the group)
t_group_users
group_id | user_id
------------------
1        | 18
1        | 22
1        | 78
1        | 90
1        | 45

关于mysql - 同一表的主键列表以逗号分隔,如何管理这样的m​​ysql表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31945312/

相关文章:

SQL Server 存储过程更新并返回单个值

mysql - 数据库设计 - 连接师生

Hibernate 查询中的 Mysql 索引提示

php - 当我不更新图像时,它会变成空白并从数据库中删除?

mysql - 如何通过组合电子邮件和日期来获取 "unique"用户

php - php 中的 sql 运行时不返回任何内容

php - 仅当用户的 ip 唯一时才执行查询

c# - 从逗号连接列表创建 SQL 表

android - SQlite:数据只会第一次插入表中,第二次不会

mysql - 类(class)先决条件的数据库设计