【问题标题】:Best way to store JSON response?存储 JSON 响应的最佳方式?
【发布时间】:2011-12-10 10:07:06
【问题描述】:

我想知道存储 JSON/XML 响应的最佳方式是什么。我目前正在构建一个应用程序,它大力支持 SoundCloud API 来获取歌曲/播放列表等。

这是我想出的一些想法。

  1. 将结果存储在关系数据库中,然后使用 PHP 将它们转换为类,以便在我的应用程序中轻松使用它们。
  2. 执行上述操作,只是这次使用我框架的内置 ORM。
  3. 使用面向文档的数据库。 (即 MongoDB、couchDB、...)
  4. 将 JSON 响应存储在缓存中。 (使用我的框架的缓存类)

有人能解释一下使用这些方法的一些优点/缺点吗?

你更喜欢哪一个?

【问题讨论】:

    标签: php database json caching orm


    【解决方案1】:

    如果你有一个可靠的模式,你不会认为它会改变,你可能想要使用关系数据库。您需要解析 json 并从 JSON 响应中生成对象,并使用您的框架将其持久化到数据库中。

    如果您认为您的架构会改变,请使用 NoSQL。

    这还取决于您将如何处理这些数据。您要在 JSON 中搜索节点吗? 您还可以将对象映射到 mongo,您可以解析 JSON 并将其存储为对象,也可以按原样存储 JSON。

    关于 NOSQL 的好处是它们很好地支持 JSON,其中使用 BSON(二进制 JSON)。

    就缓存而言,输入法,它应该只用于查找,实际上,你不能搜索缓存。它只是为了获取对象比去数据库和获取它更快。

    看看这个:

    http://www.mongodb.org/display/DOCS/Inserting#Inserting-JSON

    【讨论】:

    • 我将根据流派/艺术家/等为我的访问者提供浏览音乐收藏的选项。所以搜索节点是必须的。
    • 我刚刚阅读了您的编辑,我想我会看看 NoSQL/MongoDB,因为我对它们并不熟悉。如果结果不是我想要的,我会坚持使用'ye olde RDBMS。再次感谢您的回复!
    【解决方案2】:

    如果我需要将数据保存得比缓存提供程序更长,我会将它们按原样存储在数据库中,然后在我从数据库中检索它们时只对它们进行 json_decode。如果只是临时存储,缓存是个好主意,仍然将其编码为 json 以减小大小。

    【讨论】:

    • 感谢您的回复,我想我现在可以从列表中删除缓存了。
    【解决方案3】:

    如果您可以容忍在 Google 的 AppEngine 上托管您的音乐和播放列表数据,Ubud-db 可能适合您:https://bitbucket.org/f94os/ubud-db/wiki

    Ubud-db 是 AppEngine 上的一个文档存储,带有 REST-JSON API。 Spring/Jackson 从 JSON 映射到 Map,然后 Ubud 的服务从 Map 映射到 Entity,由 Datastore 持久化。

    REST-JSON API 可以轻松地与使用 AJAX 访问和显示动态数据的网站集成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      • 2018-03-16
      • 2019-06-06
      • 2021-11-12
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多