mysql - 如何在 MYSQL 行中存储二维数组?

标签 mysql arrays json

这甚至不可能做到。我有一张包含项目的表。 (item_id, item_name, description, 用于反序列化为实际对象的json)

我的第二个表包含包。 (package_id,package_name,price,description,item_list(2D array)) 二维数组需要将 item_id 值与数量相匹配。

通常,我会简单地将一个 JSON 数组序列化到项目列表位置。我担心 item_id 值被删除或更改。我不能使用外键来更改“级联”或“删除”子值。有没有办法在mysql行中存储一种子表?

如果我的问题描述不清楚,请告诉我。我想确保其他任何试图找到答案的人都可以遵循它。如果有帮助,我可能会在稍后包含一些图像。

解决方案:不,没有办法在 MySQL 行中存储二维数组。您必须使用桥接表。哦,好吧,至少有一个解决方案。解决方案总是存在的。

最佳答案

好吧,你总是可以将二维数组存储在数据库的列中,但它有一个问题,即从 mysql 检索数据你必须解析该列,而你的该列将包含多个值。当您的表中有一个多值属性时,必须将其迁移到另一个表以规范您的数据库设计。

在您的情况下,您正在查看多对多关系,即一个包裹可能有很多元素,一个元素可能被许多包裹拿走。要解决多对多关系,您必须引入一个通常称为桥接表的新表。该桥接表将从项目和包表中获取主键作为外键。添加此表的原因是为了消除冗余,这是规范化提供的众多功能之一。

关于mysql - 如何在 MYSQL 行中存储二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20296368/

相关文章:

mysql - 何时使用索引

arrays - 如何在 Mongodb 的旧版本中获取数组元素的索引?

javascript - C# JSON 字符串到 JavaScript 数组

java - Java 中写入 ASCII 0-255 的数据类型(ServletOutputStream)

javascript - 显示使用 PHP 和 MySQL 创建的 JSON 数据

json - 如何将 JSON 对象转换为 TypeScript 类?

MySQL 删除表不适用于前缀

php - 使用 PHP 从网站或文本文档中提取数据并保存在数据库中

mysql - 为什么简单的 If ELSE 语句在 mySql 中不起作用

javascript - 识别具有相同 id 的元素