gpt4 book ai didi

sql - 在 MySql 列中存储字符串列表

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:30 29 4
gpt4 key购买 nike

我有一个users 表,其中包含注册用户的数据,每一行代表一个用户。特别是一列应该包含用户所属的组列表,目前该列是 TEXT 类型,我将该列表存储为字符串,其中组用分号分隔,例如:

admin;moderators;devteam  

我想知道:“这是个好主意吗?”,是否有更好/更安全的方法来执行此操作而不需要很多努力来实现,或者这是“好的”?
这是截至目前的表格图片: users table

最佳答案

And I was wondering: "Is this a good idea?"

简短回答:可能不会

为什么

如果您需要对该列进行任何操作,您会发现自己遇到了大麻烦。简单地选择组中的所有用户将需要对字符串进行一些操作(通常对性能不友好)。同样适用于排序、连接和 SQL 非常适合的所有其他操作。

解决方案

你描述的是一个典型的N:N关系的例子,每个用户可以属于多个组,每个组可以有多个用户。

为这种关系建模的“标准”方法是创建一个新表,其中每一行代表一个属于某个组的用户。这些列将是组和用户 ID。

使用示例中的数据

userID  | group
--------|----------
1 | admin
1 | moderator
1 | test

这允许在 users 表中为每个用户保留一行,并且获取特定用户的组非常简单

select  group
from user_groups
where userID = '1'

关于sql - 在 MySql 列中存储字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42980859/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com