2009-04-04 5 views

Répondre

7

Pour la base de données:

A. Mettez tout sur la même base de données, mettez une colonne de tenant_id sur vos tables

Avantages: Facile à faire

Inconvénients: Très sujettes à des bogues: il est facile de fuir les données d'un locataire à un autre.

B. Mettez tout sur la même base de données, mais chaque locataire a mis sous son propre nom (postgresql les appelle schémas)

Avantages: Fournit une meilleure protection des données de fuite que l'option A

Moins: Non supporté par toutes les bases de données. AFAIK PostgreSQL et Oracle le supportent.

C. Configuration d'une base de données par locataire

Plus: Absolument aucune chance de données fuite d'un locataire à un autre

Inconvénients: La création de nouveaux locataires est plus complexe. Les connexions aux bases de données sont chères.

J'ai seulement appris les idées ci-dessus de Guy Naor. Voici un lien vers sa présentation: http://aac2009.confreaks.com/06-feb-2009-14-30-writing-multi-tenant-applications-in-rails-guy-naor.html

+0

Dans # B, tous les schémas de soutien des bases de données, mais avec une terminologie différente. En MySQL, le schéma et la base de données sont synonymes. MSSQL a également le support des schémas maintenant. Notre application multitenancy en production fonctionne avec environ 4000 bases de données/schémas sur MySQL. –

Questions connexes