【问题标题】:Storing associative array in MySQL DB在 MySQL DB 中存储关联数组
【发布时间】:2011-03-21 11:24:20
【问题描述】:

我想将主要包含字符串和整数的关联数组作为值存储在 db 中。

我在想:

  • implode/explode - 需要找到分隔符,它不会在值中 - 因为它几乎是用户生成的,不安全
  • XML - 感觉工作很繁重(创建/读取值)
  • json - 如果我只需要使用 json_decode/json_encode,看起来很完美

你怎么看?

请不要在 SO 上向我转发类似这样的其他问题,我已经阅读了大部分内容,但我仍然不确定:)

【问题讨论】:

    标签: php mysql xml json implode


    【解决方案1】:

    【讨论】:

    【解决方案2】:

    您可以serialize() 数组,或者json_encode() 写入数据库时​​,json_decode() 从数据库中获取。

    【讨论】:

      【解决方案3】:

      这完全取决于您在数据库中获取此数据后要检索该数据的方式。当然,您可以序列化一个数组并将其放入您的字段中,但是如果您想对该数组中的数据执行查询呢?你必须拉出序列化的数组,执行 PHP 函数,然后进行查询。

      你需要解释你想用这个关联数组数据实现什么。

      【讨论】:

      • 主要是内容的元数据:如何显示它的各种指令、作者、日期和其他我不需要完整搜索的信息。
      【解决方案4】:

      还可以选择创建包含keyvalue 列的表,并将每个数组元素单独存储在该表中。这可能看起来有些过分,但根据您要对数据执行的操作,可能会证明是有用的

      【讨论】:

      • 我不想那样做,因为每个新版本的内容都会在数据库中保存为不同的“页面”,如果每个页面都有 10+ 对,则对内容进行差异或其他操作更多修订会导致......混乱或大量的数据库操作。
      猜你喜欢
      • 2016-06-29
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 2018-07-22
      • 2016-12-10
      • 2015-04-23
      • 2015-06-13
      • 2020-08-02
      相关资源
      最近更新 更多