2010-08-19 7 views
3

Je développe une application SaaS et je suis à la recherche de la meilleure façon de concevoir des tables de consultation, en prenant en considération:Lookups dans multioccupant Base de données

  • Les tables de consultation auront des données prédéfinies partagées entre tous les locataires
  • Chaque locataire doit avoir la possibilité d'étendre le look table avec ses propres données, par exemple en ajoutant une voiture classe non définie

Je pense à ajouter la colonne TenantID à chaque recherche et ajouter les données prédéfinies en définissant cette colonne à une certaine valeur qui représente le "Super locataire" qui appartient au système lui-même

+0

Remarque: J'utilise la base de données partagée avec l'approche de schéma partagé –

+0

Check this out http://stackoverflow.com/questions/12911357/saas-tenant-specific-lookup-data-in-shared-database –

Répondre

1

Dans une configuration de schéma partagé, je recommande fortement vous identifiez le locataire "propriétaire" de chaque table. Certes, ce n'est pas toujours nécessaire, car les tables d'enfant peuvent appartenir aux parents qui sont la propriété du locataire, mais le fait d'avoir le locataire sur chaque table rend la vie beaucoup plus simple et plus sûre. Cela dit, j'utiliserais une valeur spéciale pour le locataire et soit le syndicat, soit le select pour obtenir des résultats combinés. Vous pouvez utiliser null, -1 ou un guid bien connu pour représenter le système. Ma préférence a été d'utiliser -1 récemment.