如何在 MySql 数据库中存储布尔值数组?

2023-12-20

就我而言,每个“项目”要么有属性,要么没有。这些属性可能有数百个,因此我需要每个项目最多 1000 个真/假位。

有没有一种方法可以将这些位存储在项目的一个字段中?


如果您正在寻找一种可搜索的方式来执行此操作,那么不行。

几种可搜索的方法(涉及超过 1 列和/或表):

  • 使用一堆SET http://dev.mysql.com/tech-resources/articles/mysql-set-datatype.html列。一套中最多只能有 64 个项目(开/关),但您可能会想出一种方法将它们分组。
  • 使用 3 个表:Items (id, ...)、FlagNames(id, name) 和数据透视表 ItemFlags(item_id, flag_id)。然后您可以查询项目joins http://dev.mysql.com/doc/refman/5.0/en/join.html.

如果您不需要它可搜索,那么您需要的只是一种在将数据放入数据库之前序列化数据的方法,并在将其拉出时对其进行反序列化,然后使用 char 或 varchar 列。

  • 使用您的语言内置的工具(PHP 的序列化/反序列化)。
  • 将一系列“y”和“n”字符连接在一起。
  • 在调用 MySQL 数据库之前,将您的值在客户端中位打包为字符串(每个字符 8 位),并在从数据库中检索数据时解包它们。这是最有效的存储机制(如果所有行都相同,则使用 char[x],而不是 varchar[x]),但代价是数据不可搜索且代码稍微复杂一些。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 MySql 数据库中存储布尔值数组? 的相关文章

随机推荐

  • 如何配置 Mongodb 的缓存大小?

    我需要在 Mongodb 中处理缓存 这样做需要大量 RAM 吗 在这种情况下使用存储引擎有什么特点和优势 方法 重启后无效 bin mongo 管理员 db adminCommand setParameter 1 wiredTigerEn
  • C#:反序列化 XML 文件错误(认为这是命名空间问题 - 但我一生都无法解决)

    我正在反序列化一个来自我们客户之一的 Web 服务的 XML 文件 问题是 在使用 xsd exe 创建类后 我反序列化该文件并得到通常的 XML 文档中存在错误 2 2 视觉工作室错误 我认为这是第 2 行 它指向命名空间声明 XML 文
  • 将 Java 的 Integer 转换为 Scala 的 Int

    我有一段返回的 Java 代码java lang Integer它可以是null someClass getMyInteger 但是当我在 Scala 类中使用它时 我收到此错误 导致 java lang NullPointerExcept
  • HealthKit:HKObserverQuery 未触发

    我正在尝试做一件非常基本的事情 设置一个 HKObserverQuery 以便我可以知道各个数据点何时发生更改 我已确保用户已授权应用程序使用相关数据点 无论出于何种原因 我可以在每次启动应用程序时触发查询 但当我关闭应用程序 进入 健康
  • __unsafe_unretained 和弱并在 ARC 下分配? [复制]

    这个问题在这里已经有答案了 可能的重复 强 弱 保留 unsafe unretained 分配 https stackoverflow com questions 9784762 strong weak retain unsafe unre
  • 如何在WPF选项卡控件中创建梯形选项卡

    如何在WPF选项卡控件中创建梯形选项卡 我想创建非矩形选项卡 看起来像 Google Chrome 中的选项卡或 VS 2008 代码编辑器中的选项卡 可以用 WPF 样式完成还是必须用代码绘制 互联网上有可用的代码示例吗 Edit The
  • 为什么当参数相等时 std::sort 比较函数必须返回 false?

    在 std sort 中 您可以提供第三个参数 它是列表排序方式的基础 如果您希望第一个参数先出现 则返回 true 如果您希望第二个参数先出现 则返回 false 我遇到了这样的问题 我的谓词函数应该是 无效的比较器 我已将其范围缩小到它
  • @mui/material/styles 和 @mui/styles 之间的区别?

    在 Material UI v5 中 一些 API 使用是从 mui material styles like useTheme 一些API的使用是从导入的 mui styles like makeStyles 我可以只使用一个库中的那些与
  • 将通用结构保存到 redis

    在编写 golang Web 服务器时 我必须使用某种缓存 所以我选择了 redis 我需要某种可以接受任何结构并将其作为值保存到 Redis 的函数 有什么方法可以在不使用的情况下做到这一点interface 作为接收参数或重复太多但仍保
  • 包含至少一位数字的字母数字字符串的正则表达式

    我正在寻找具有以下条件的正则表达式 a 至少 13 个字母数字字符 b 最多 17 个字母数字 人物 c 和至少 1 位数字 该正则表达式满足 a 和 b 它如何也满足条件c a zA Z0 9 13 17 输入文本示例 matching
  • 简单GDI项目的Mingw-w64和TDM-GCC之间的差异

    我需要在 Win64 上为 Win64 构建一个简单的非商业工具 处理 Windows GDI API 无交叉编译 MinGW 对我来说似乎是最好的选择 我过去已经使用过 32 位版本 至于 64 位 你能告诉我以下版本之间的主要区别吗 明
  • CSS:如何仅在支持悬停的设备上允许悬停状态?

    我一直在寻找一种方法来防止触摸设备 模拟 悬停事件 原因是您无法像在桌面上那样使用光标悬停在触摸设备上 这有时会影响用户体验 因为我在网上没有找到任何解决方案 所以我想在这里发布我自己的解决方案 我希望这会对某人有所帮助 我实现了仅将鼠标悬
  • cURL 从 FTPS 站点下载多个文件

    我正在使用 cURL 第一次使用它 从命令行从 ftps 站点下载文件 这就是我需要做的 从 ftps 站点下载与特定文件名匹配的多个文件 例如Filename csv 1998 zip所以我需要下载所有具有名称的文件Filename cs
  • Xcode 单元测试:Xcode 不会在断点处停止

    使用 Xcode 6 3 Beta 2 进行单元测试我遇到以下问题 当我进行单元测试时 单元测试模块中的断点可以工作 但被测试代码中的中断代码不会被忽略 有任何想法吗 我遇到了同样的问题 原因是方案设置 1 编辑您的方案 2 在左侧面板中选
  • 仅在node_modules中跳过库检查

    关于禁用错误输入中的错误有几个问题node modules e g this one https stackoverflow com questions 49906424 rxjs5 typescript typings fail 4991
  • jQuery UI 抖动 - 填充消失

    我遇到了这个小问题 我的包装纸里有一个盒子 我想来回摇晃它 效果很好 但是当我添加填充时 box动画打开时 填充会消失 这 box还有一个box sizing border box所以填充不会影响盒子的大小 如果我删除box sizing
  • 重定向而不更改 URL Apache

    我想将一个 URL 重定向到另一个 URL 而不更改浏览器 URL www example com abc xml 应重定向到 www example com abc xyz index htm file 1 但浏览器应该显示 www ex
  • 暂停代码执行但让 Excel 工作

    我正在制作一个宏 我想做以下事情 打开一个文件 等待文件填满数据 该文件使用单元格公式从外部数据库下载数据 下载大约需要15秒 20 秒后检查是否所有内容都已下载 如果没有 请再等待 10 秒 总共等待最多一分钟 如果所有内容都已下载 请存
  • Android ViewPager setCurrentItem 在 onResume 后不起作用

    我遇到了这个奇怪的问题ViewPager s setCurrentItem position false 工作得很好 然后我切换到另一个活动 在我回到第一个活动后 ViewPager总是以第一个项目结束 尽管我已经添加了setCurrent
  • 如何在 MySql 数据库中存储布尔值数组?

    就我而言 每个 项目 要么有属性 要么没有 这些属性可能有数百个 因此我需要每个项目最多 1000 个真 假位 有没有一种方法可以将这些位存储在项目的一个字段中 如果您正在寻找一种可搜索的方式来执行此操作 那么不行 几种可搜索的方法 涉及超