gpt4 book ai didi

mysql - 如何在 MySql 数据库中存储 boolean 值数组?

转载 作者:可可西里 更新时间:2023-11-01 07:57:38 25 4
gpt4 key购买 nike

在我的例子中,每个“项目”要么有一个属性,要么没有。属性可能有数百个,所以我需要,比如说,每个项目最多 1000 个真/假位。

有没有办法将这些位存储在项目的一个字段中?

最佳答案

如果您正在寻找一种以可搜索的方式执行此操作的方法,那就不要了。

一些可搜索的方法(涉及超过 1 列和/或表格):

  • 使用一堆 SET列。一个集合中的项目仅限于 64 个(开/关),但您可能想不出一种方法来对它们进行分组。
  • 使用 3 个表:Items (id, ...)、FlagNames(id, name) 和一个数据透视表 ItemFlags(item_id, flag_id)。然后,您可以使用 joins 查询项目.

如果你不需要它是可搜索的,那么你所需要的只是一种在将数据放入数据库之前序列化数据的方法,并在提取数据时反序列化它,然后使用 char 或 varchar专栏。

  • 使用您的语言内置的功能(PHP 的序列化/反序列化)。
  • 将一系列“y”和“n”字符连接在一起。
  • 在调用 MySQL 数据库之前,在客户端中将您的值按位打包成一个字符串(每个字符 8 位),并在从数据库中检索数据时解压缩它们。这是最有效的存储机制(如果所有行都相同,请使用 char[x],而不是 varchar[x]),代价是数据不可搜索且代码稍微复杂一些。

关于mysql - 如何在 MySql 数据库中存储 boolean 值数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3154987/

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