php - 在数据库中存储数组

标签 php database serialization json denormalized

我想知道将数组存储在数据库中是否真的是一种好习惯?我倾向于使用 json_encode 而不是 serialize,但只是想知道这是否是个好主意。如果没有,那么我可以做一些小改动,然后用逗号内爆数组。

最佳答案

不,这是一种糟糕的做法。请避免在关系数据库中插入 CSV、JSON*、serialize() 或任何类型的序列化数据。非规范化几乎总是一个坏主意——除非你真的知道自己在做什么,否则不要这样做,否则你会开始问 类似问题:this , this , this , this , ...

这样做,您将失去或严重阻碍您的能力:

  • 使用JOIN
  • 查找或修改特定元素
  • 实现参照完整性
  • 从索引使用中获益
  • 而且还浪费空间

这听起来可能有点学究气,但看到人们这样做是我最讨厌的事情之一 - 特别是考虑到在 SO 上提出的过多问题,如果他们采取正确的方式,这些问题是可以避免的。

这是 the right way在 RDBMS 中建立一对多和多对多关系。

*虽然一些 SQL 数据库内置了对 JSON 的支持,但通常最好重组数据,这样您就不需要它了

关于php - 在数据库中存储数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7364803/

相关文章:

php - Sql – 在列的第一个空单元格中插入值并显示 ID

php - 使用 for 循环将数组插入 SQL

维护数据库结构的java库

php - 如何将秒表结果(数组)推送到第一个表结果(数组)

php - 将 JSON 数据从 PHP 传递到 ASP.NET

iphone - 在 iPhone 上更新 SQLite 数据库

database - 用于移动设备的 Flex - 使用数据库

c# - 在没有第三方库的情况下从 JSoN 获取动态对象的最佳方法是什么?

javascript - 使用 Javascript 在本地保存 HTML

c++ - boost 序列化 - 序列化不可复制但可移动的对象?