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

3
我在思考存储JSON/XML响应的最佳方法。我目前正在构建一个应用程序,该应用程序支持使用SoundCloud API获取歌曲/播放列表等等。
以下是我想到的一些想法:
  1. 将结果存储在关系数据库中,然后使用PHP将它们转换为类,以便在整个应用程序中轻松使用。
  2. 执行上述操作,只不过这次使用框架内置的ORM。
  3. 使用面向文档的数据库(例如MongoDB、couchDB等)。
  4. 将JSON响应存储在缓存中(使用我的框架的缓存类)。
有人可以阐明使用这些方法的优缺点吗?
你更喜欢哪种方法?
3个回答

2

如果您有一个确定的方案,认为不会发生变化,您可能希望使用关系型数据库。您需要解析JSON并将其转换为对象,使用框架将其持久化到数据库。

如果您认为您的方案会改变,请使用NoSQL。

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

NoSQL的好处在于它们非常支持JSON格式,其中使用BSON(二进制JSON)。

就缓存而言,个人认为它仅用于查找,实际上,您无法搜索缓存。它只是为了比从数据库获取对象更快地获取对象。

请看这个:

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


我将为我的访客提供按流派/艺术家等浏览音乐收藏的选项,因此搜索节点将是必须的。 - Gilles De Mey
我刚刚看了你的编辑,我想我会看看NoSQL/MongoDB,因为我不太熟悉它们。如果发现不是我要找的,我还是会使用传统的关系型数据库。再次感谢您的回复! - Gilles De Mey

1

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

Ubud-db是一个基于AppEngine的文档存储,具有REST-JSON API。Spring/Jackson从JSON映射到Map,然后Ubud的服务从Map映射到实体,并由Datastore持久化。

REST-JSON API使得使用AJAX集成网站以访问和显示动态数据变得容易。


0

如果我需要保留数据的时间超过缓存提供者,我会将它们原封不动地存储在数据库中,然后在从数据库中检索它们时简单地进行 json_decode。如果只是临时存储,缓存是一个很好的选择,仍然将其编码为 json 以减小大小。


谢谢您的回复,我认为现在可以从我的列表中删除缓存。 - Gilles De Mey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接