MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongo DB Design, intégration vs relations

1) Concernant la limite de document de 4 Mo, voici ce que dit le "MongoDB :Le guide définitif" :

En fin de compte, cela dépend de la taille à laquelle vous vous attendez à ce que les factures d'un utilisateur augmentent. J'espère que l'extrait ci-dessus vous donne une idée des limites imposées par la taille du document.

2) Le schéma dénormalisé (les factures vont avec le document utilisateur) est la voie à suivre si vous savez que vous n'allez jamais exécuter de requêtes globales sur les factures (exemple d'une telle requête si vous souhaitez récupérer les dix factures les plus récentes entrée dans le système). Vous devrez utiliser map-reduce pour récupérer les résultats de ces requêtes si vous utilisez un schéma dénormalisé.

Le schéma normalisé (utilisateur et factures dans des documents séparés) est un meilleur choix si vous souhaitez une flexibilité dans la manière dont les factures sont interrogées. Cependant, étant donné que MongoDB ne prend pas en charge les jointures, vous devrez exécuter plusieurs requêtes à chaque fois que vous souhaitez récupérer les factures correspondant à un utilisateur.

Compte tenu du cas d'utilisation que vous avez mentionné, j'opterais pour un schéma dénormalisé.

3) Toutes les mises à jour dans MongoDB sont atomiques et sérialisées. Cela devrait répondre à la préoccupation de Steve.

Ces diapositives peuvent vous être utiles. http://www.slideshare.net/kbanker/mongodb-meetup

Vous pouvez également consulter la page Déploiements de production de MongoDB. Les diapositives SF.net peuvent vous être utiles.