seule base de données MongoDB vs collection par client vs base de données par client

StackOverflow https://stackoverflow.com/questions/8307676

  •  25-10-2019
  •  | 
  •  

Question

Je veux construire un webservice en utilisant MongoDB et de lithium. Qu'est-ce qui est mieux:

  • stocker les données de tous les clients dans une collection (par exemple tous les documents de transactions de clients multiples dans une transaction de collecte)

  • Créer plusieurs collections par exemple transactions_client1, transactions_client2 etc.

  • Un db par client

le système doit être évolutif et doit être facile à déployer

Était-ce utile?

La solution

Pour donner une orientation, il faudrait en savoir beaucoup plus sur ce que vous voulez atteindre, exactement.

Cependant, je voudrais exclure l'option 2 (plusieurs collections) parce que je ne vois pas vraiment d'avantages de cette approche: vous devez déterminer le nom de la collection à l'exécution, il est un peu plus difficile à écrire vos questions et il y a une limite stricte du nombre de collections que vous pouvez avoir (environ 1,5 million de collections avec 2 Go fichier d'espace de noms )

Option 1 peut aider à isoler les clients et pourrait améliorer la sécurité, mais il y a toujours le risque d'erreurs de programmation dans le choix de la base de données. Isoler ce code est facile, cependant.

Ces deux options ont l'inconvénient que vous ne pouvez pas interroger dans toutes les collections. Cependant, vous voulez toujours avoir accès à certaines collections qui sont essentiellement partagées entre tous les clients (par exemple les journaux, statistiques, etc.) de sorte que vous avez la charge de séparation supplémentaire ceux-ci.

C'est pourquoi je habituellement aller pour l'option 1.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top