2013-02-05 3 views
1

Je souhaite concevoir une solution métier cloud avec 4 tables par défaut, un utilisateur peut ajouter un champ personnalisé (Colonne?) Ou ajouter un objet personnalisé (Table?).Stockage de bases de données logiques multiples dans une base de données physique

Ma première pensée était de créer une nouvelle base de données pour chaque compte, mais il y a une limite au nombre de bases de données sur une instance de serveur SQL,

2ème solution: pour chaque compte créer un nouveau schéma en dupliquant les 4 tables par défaut chaque schéma.

3ème solution: créer 4 tables uniques avec une colonne discriminante (ACCOUNT_ID), si un utilisateur veut un nouveau champ ajouter une table jointe dédicacée à ce ACCOUNT_ID, s'il veut un nouvel objet puis créer une nouvelle table.

Que pensez-vous? Un organisme sait-il comment les solutions de cloud existantes stockent les données? (par exemple salesforce)

Par ailleurs, je ne souhaite pas créer de machine virtuelle pour chaque compte.

+2

Eh bien, vous pouvez vous demander comment fonctionne SQLFiddle. . . et il est expliqué ici (http://sqlfiddle.com/about.html#howWorks). –

+3

Il y a un article intéressant sur les architectures multi-locataires possibles ici: http://msdn.microsoft.com/en-us/library/aa479086.aspx Serait utile de lire si vous vous lancez dans ce genre de projet. – John

+1

J'aime la solution de schéma car il serait facile d'accorder une autorisation verrouillée à des utilisateurs spécifiques à un schéma spécifique et serait facile de scripter dynamiquement la logique de requête en fonction d'une variable d'entité métier. –

Répondre

0

Merci à tous pour vos suggestions, qui m'ont beaucoup aidé en particulier l'article de Microsoft suggéré par John. Comme peu de points d'architecture sont partagés entre les comptes (les 4 tables par défaut ne sont qu'une suggestion pour l'utilisateur, je m'attends à une personnalisation complète), j'ai opté pour le schéma par compte sans modèle EAV.

Questions connexes