存储JSON响应的最佳方法是什么?

时间:2011-10-18 20:20:10

标签: php database json caching orm

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

以下是我提出的一些想法。

  1. 将结果存储在关系数据库中,然后使用PHP将它们转换为类,以便在整个应用程序中轻松使用它们。
  2. 执行上述操作,仅使用我的框架内置的ORM。
  3. 使用面向文档的数据库。 (即MongoDB,couchDB,......)
  4. 将JSON响应存储在缓存中。 (使用我的框架的缓存类)
  5. 任何人都可以关注使用这些方法的一些优点/缺点吗?

    您更喜欢哪一个?

3 个答案:

答案 0 :(得分:1)

如果你有一个可靠的架构,你不会认为它会改变,你可能想要使用关系数据库。您将需要解析json并使用JSON响应创建对象,并使用您的框架将其保存到数据库中。

如果您认为您的架构将更改使用NoSQL。

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

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

就缓存,IME而言,它应仅用于查找,实际上,您无法搜索缓存。它只是为了让对象更快,而不是去数据库并获得它。

看看这个:

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

答案 1 :(得分:1)

如果您可以容忍在Google的AppEngine上托管您的音乐和播放列表数据,那么Ubud-db可以为您提供帮助:https://bitbucket.org/f94os/ubud-db/wiki

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

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

答案 2 :(得分:0)

如果我需要保留数据的时间比缓存提供者长,我会将它们按原样存储在数据库中,然后当我从数据库中检索它们时,只需json_decode它们。如果它只是临时存储,缓存是一个好主意,仍然将其编码为json以减小大小。