2010-11-06 5 views
4

Dans la situation d'une application Web à laquelle les entreprises peuvent s'inscrire et utiliser pour gérer les données, quels sont les avantages et les inconvénients des deux options suivantes?Plusieurs bases de données par rapport à une base de données avec des ID utilisés pour séparer les organisations

  • Une base de données par organisation où les données pour chaque organisation est entièrement séparés en bases de données individuelles, avec une (très petite) base de données centralisée qui tient une liste de base des organisations et de leurs identifiants de base de données.

  • Une base de données pour l'ensemble de l'application où toutes les entités sont stockées dans une grande base de données et séparées à l'aide d'une colonne d'identificateur d'organisation sur chaque table.

D'autres aspects à considérer:

  • Les données ne seront jamais partagées entre les organisations dans la base de données, ni ne les informations de connexion.
  • Certaines organisations permettront au grand public d'enregistrer un compte auprès de l'application pour soumettre des données, d'autres non.
  • Nous prévoyons d'exposer une API publique pour que les organisations puissent intégrer leurs processus actuels à notre application. Les organisations pourront générer des clés API pour autoriser l'accès à leurs données, mais il n'y aura pas d'API publique couvrant les organisations.
  • Les entreprises stockent des données potentiellement sensibles dans l'application.

D'après votre expérience et/ou de connaissances, ce qui est la bonne façon de s'y prendre cette décision de conception (ou est-il un « droit » chemin du tout?)

Répondre

8

Here est une discussion approfondie sur MSDN (Architecture de données multi-locataires).

J'ajouterais qu'il n'y a pas de bonne/mauvaise façon. Tout dépend des exigences, de l'expertise existante et des coûts.

+0

Une excellente lecture. –

5

Vous pourriez trouver les commentaires de Joel Spolsky sur ce sujet intéressants. Voici une transcription du podcast dans lequel Joel a discuté de l'architecture de base de données multi-locataire de FogBugz:

https://stackoverflow.fogbugz.com/default.asp?W24218

(rechercher la transcription de la question à partir de [50:45])

0

Une considération que peut être intéressant:

Si vous avez une base de données unique pour toutes les organisations, et que ces organisations sont réparties sur les 24 fuseaux horaires, cela nécessite un SGBD 24/24 (et peut-être 7/7). Je crois que tous les produits n'ont pas cela.

Questions connexes