Dans la plupart des situations, je recommanderais de choisir une base de données pour un projet, si le projet n'est pas énorme. Sur les très gros projets (ou les entreprises en général), Je pense les organisations à long terme utiliseront une combinaison de
- SGBDR pour OLTP hautement transactionnel
- NoSQL
- un projet d'entreposage de données/BI
Mais pour des choses d'une portée plus raisonnable, choisissez simplement celle qui fait le cœur du cas d'utilisation et utilisez-la pour tout.
IMO stocke les données utilisateur dans mongodb, c'est bien - vous pouvez effectuer des opérations atomiques sur des documents BSON uniques, de sorte que des opérations telles que "m'attribuer ce nom d'utilisateur de manière atomique" sont réalisables. Avec redo logs (--journal ) (v1.8+), réplication, slavedelayed réplication, il est possible d'avoir un degré assez élevé de sécurité des données - aussi élevé que les autres produits db sur papier. Le principal argument contre la sécurité serait que le produit est nouveau et que l'ancien logiciel est toujours plus sûr.
Si vous devez effectuer des transactions ACID très complexes, telles que la comptabilité, utilisez un SGBDR.
De plus, si vous devez faire beaucoup de rapports, mysql peut être meilleur pour le moment, surtout si l'ensemble de données tient sur un seul serveur. L'instruction SQL GROUP BY est assez puissante.