我需要将一些列表类型的数据存储到MYSQL数据库中。是否可以将其存储在MYSQL中,如果是,则应该保存此数据的字段的数据类型是什么?
提前致谢。
答案 0 :(得分:5)
分隔值并将它们存储在另一条记录中。
例如,如果您有用户并希望存储每个用户拥有的角色列表,那么您可以这样做
users table
-----------
id
name
...
roles table
-----------
id
name
user_roles table
----------------
user_id
role_id
答案 1 :(得分:1)
您可以使用VARCHAR数据类型列将其存储为STRING。
mysql中没有专门用于存储特定列表的特定数据类型。
其他方法是破坏列表并将每个成员存储在不同的行中,然后在查询时,您可以用首选语言重新创建列表或数组或JSON。
答案 2 :(得分:0)
您可以使用JSON
数据类型。
MySQL
提供JSON
作为column
数据类型,并提供一些函数来处理JSON
数据。
注意:您必须使用5.7+版本
从MySQL 5.7.8开始,MySQL支持本机JSON数据类型,可以在JSON中高效访问数据
答案 3 :(得分:0)
您可以使用SET数据类型,这将在mysql中而不是在表中存储预定义的数据集,并允许您从列表中选择值,最多64个单个项
答案 4 :(得分:0)
您可以创建一个包含两个字段的表 - 第一个是列表名称,第二个是列表项。这个表就像列表和它的项目之间的连接。每个列表名称将在表中出现的次数与列表中的项目一样多。每个列表项在表中出现的次数与其所属的列表数相同。
例如,假设您要存储有关团队的数据。假设任何人都可以成为多个团队的成员。如果鲍勃在蓝队和橙队,那么将有两条记录包括鲍勃 - 一个是他与蓝队配对,另一个是他与橙队配对。如果蓝队有 10 人,那么将有 10 条记录提到蓝队——每个蓝队成员都有一个。
我认为这个解决方案不遵循规范化规则,但它会是一个实用、可行的解决方案,不是吗?