Mon article préféré sur le sujet. (avec l'exemple de Diaspora et le fail de MongoDB : <A href="http://www.sarahmei.com/blog/2013/11/11/why-you-should-never-use-mongodb/" rel="nofollow">http://www.sarahmei.com/blog/2013/11/11/why-you-should-never-use-mongodb/</A> )
NoSQL, c'est une techno de fainéant. C'est une techno "agile" pour les gens qui veulent des résultats immédiats sans s'occuper du coût à moyen long terme. C'est parfait pour stocker des pétaoctets d'archives en gardant une bonne disponibilité... mais ça s'arrête là.
Pour moi, on ne peut utiliser une base NoSQL que si trois critères se rejoignent :
- Quand ton modèle de donnée n'a pas de relations entre objets, et n'évoluera pas
- Que tes objets peuvent évoluer avec le temps et que tu veux t'économiser les migrations et évolutions de ton modèle
- Que tu as besoin d'ultra grosses performances en lecture
Si tu ne coches pas ces 3 cases, le NoSQL n'est pas adapté.
Le NoSQL est depuis 10 ans un buzzword, un truc à la mode. Les devs trouvent ça cool car on peut arrêter de "galérer" avec les migrations et les SQL. Mais pour moi ça crée bien plus de problèmes que ça n'en résout. Car tu déportes les problématiques de relations, intégrité et cohérence de données sur ton applicatif... alors que les SGBD ont toujours parfaitement fait ça.
Bref, je n'aime pas le NoSQL.