2009-11-24 11 views
0

je une exigence pour un ensemble de sites Web asp.net MVC comme suit:agrégation des données - plusieurs sites Web, site unique de super-utilisateur

  1. Plusieurs sites, en utilisant la même base de code, mais chaque site aura séparé base de données (c'est une exigence), et les utilisateurs vont se connecter et entrer des données.

  2. Un site unique pour les super-utilisateurs où ils se connectent et travaillent sur des données agrégées à partir de chacun des sites individuels.

Le nombre de sites en un point est susceptible de développer comme nous l'étendre à plus de clients.

Ma question concerne l'architecture de ce qui précède - comment gérer l'agrégation de données, étant donné qu'elle doit être en temps réel. Maintenons-nous cela au niveau de la base de données (par exemple, une vue qui est essentiellement une union entre les bases de données de sites individuelles), ou au niveau de l'application.

Quelques points d'infrastructure:

  1. Nous avons un contrôle complet sur le serveur de base de données et le nom des bases de données.

  2. Tous ces sites sont déployés sur un serveur que nous gérons.

J'apprécierais toute contribution/idées des gens qui ont pu faire cela avant.

Répondre

0

Est-ce que l'agrégation de données doit être complètement en temps réel, ou pouvez-vous vous en sortir presque en temps réel? Si "presque en temps réel" est acceptable, vous pouvez écrire une application de service qui récupère les données des bases de données de sites dans votre base de données centrale unique. Tant que le processus s'exécute en continu et que vous n'avez pas trop de sites pour collecter les données du retard, il devrait être plus ou moins invisible pour l'utilisateur. Avoir une vue qui accumule les données de toutes les bases de données ne semble pas être une bonne solution. Non seulement cela sera probablement très lent, mais vous devrez également mettre à jour la vue chaque fois que vous ajoutez un nouveau site.

Quelle est l'intention du site super-utilisateur, btw? S'agit-il uniquement de rapports ou les super utilisateurs doivent-ils également modifier les données sur tous les sites? Cela peut affecter la solution que vous choisissez.

+0

Il sera à la fois afficher et éditer. Je suis d'accord avec votre point de vue sur la vue, il pourrait bien être lent ... – Paddy

+0

Vous pourriez opter pour une solution mixte où vous disposiez d'informations agrégées dans la base de données centrale mais où vous vous connectez également directement à la base de données des sites pour éditer des sites spécifiques Les données. Ce serait assez facile à accomplir en ayant deux connexions de base de données actives pour un utilisateur. L'un utiliserait une chaîne de connexion statique à la base de données partagée tandis que l'autre utiliserait une chaîne de connexion spécifique à l'utilisateur connecté. –