2011-10-18 6 views
0

Je me demandais quelle serait la meilleure façon de stocker les réponses JSON/XML. Je suis en train de construire une application qui supporte fortement l'API SoundCloud pour aller chercher des chansons/playlists, etc.Meilleure façon de stocker la réponse JSON?

Voici quelques idées que j'ai trouvées.

  1. Stocker les résultats dans une base de données relationnelle, puis utiliser PHP pour les convertir en classes afin de les utiliser facilement dans toute l'application.
  2. Faire ce qui précède, seulement cette fois en utilisant ORM intégré de mon cadre.
  3. Utilisation d'une base de données orientée document. (par exemple, MongoDB, couchDB, ...)
  4. Stockage des réponses JSON dans un cache. (en utilisant les classes de cache de mon framework)

Quelqu'un peut-il faire la lumière sur certains des avantages/inconvénients de l'utilisation de l'une de ces méthodes?

Lequel préférez-vous?

Répondre

1

Si vous avez un schéma solide, que vous ne pensez pas qu'il va changer, vous pouvez utiliser la base de données relationnelle. Vous devrez analyser le fichier json et créer des objets à partir de la réponse JSON. En utilisant votre framework, vous pouvez le conserver dans la base de données.

Si vous pensez que votre schéma va changer, utilisez NoSQL.

Cela dépend aussi de ce que vous ferez de ces données. Allez-vous rechercher les nœuds dans JSON? Vous pouvez également faire un objet pour le mappage mongo, vous pouvez analyser le JSON et le stocker comme un objet ou vous pouvez stocker le JSON comme il est. Une bonne chose à propos de NOSQL est qu'ils supportent assez bien JSON dans lequel ils utilisent BSON (Binary JSON).

En termes de cache, IME, il devrait être utilisé uniquement pour les recherches, et en fait, vous ne pouvez pas rechercher le cache. C'est juste pour obtenir des objets plus rapidement que d'aller à la base de données et de l'obtenir.

Jetez un oeil à ceci:

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

+0

Je vais fournir à mes visiteurs des options pour parcourir la collection de musique en fonction du genre/artiste/etc. donc la recherche des nœuds sera un must. –

+0

Je viens de lire votre édition, je pense que je vais jeter un oeil à NoSQL/MongoDB puisque je ne suis pas vraiment familier avec eux. Si cela ne s'avère pas être ce que je cherche, je vais m'en tenir à utiliser 'old olde RDBMS. Merci encore pour votre réponse! –

+0

nosql est très facile. plus facile que dbms relationnel. – DarthVader

0

Si je dois garder les données pour plus d'un fournisseur de cache, je les stocker dans une base de données comme ça, et puis juste les json_decode lorsque je récupère eux de la DB. Si c'est juste du stockage temporaire, le cache est une excellente idée, tout en laissant le codage en json pour réduire la taille.

+0

Merci pour votre réponse, je pense que je peux supprimer la mise en cache de ma liste maintenant. –

1

Si vous pouvez tolérer l'hébergement de vos données musicales et playlist sur le AppEngine de Google, Ubud-db peut être quelque chose pour vous: https://bitbucket.org/f94os/ubud-db/wiki

Ubud-db est un document magasin sur AppEngine avec une API REST-JSON. Spring/Jackson mappe JSON à une carte, puis les cartes de service d'Ubud de la carte à l'entité, conservées par le magasin de données.

L'API REST-JSON facilite l'intégration à un site Web utilisant AJAX pour accéder et afficher des données dynamiques.

Questions connexes