2010-05-04 5 views
1

Je prévois d'utiliser le système d'adhésion implémenté ASP.NET MVC2 pour gérer les utilisateurs. La base de données qui utilise l'application doit avoir des tables liées à ces utilisateurs. Est-il possible d'utiliser deux bases de données différentes et de faire des relations (clés étrangères) entre eux ou je devrai fusionner ces deux bases de données en une seule?La base de données d'appartenance ASP.NET MVC doit être fusionnée avec la base de données de site?

Merci,
Ile

Répondre

3

Il est impossible de mettre en place des relations entre les bases de données. Vous pouvez utiliser des déclencheurs pour garantir l'intégrité relationnelle.

Sinon, je dirais: tout dans une base de données, mettez-les dans des schémas différents.

+0

"Vous pouvez utiliser des déclencheurs pour assurer l'intégrité relationnelle" - Qu'est-ce que cela signifie réellement? Pourriez-vous s'il vous plaît être plus précis? Merci –

+1

Eh bien, un déclencheur (lire la documentation - en fait un ensemble de déclencheurs) peut être utilisé pour enfoncer l'intégrité relationnelle. Il est correctement documenté dans - la documentation. http://msdn.microsoft.com/en-us/magazine/cc164047.aspx a une introduction sur ce que les déclencheurs sont. – TomTom

+1

+1 pour corriger la pluralisation du schéma :-) –

0

Je mettrais l'appartenance/rôle dans une base de données séparée. Je ne pense pas qu'avoir des contraintes de clé étrangère est si utile. Son meilleur découplage si vous passez par l'API d'adhésion plutôt que de rejoindre directement les tables. La seule chose dans la base de données d'adhésion que vous pourriez avoir besoin de rechercher souvent est le nom d'utilisateur. Si cela devient un problème de performance, je créerais probablement une table de recherche, soit en mémoire soit dans une table de recherche dans la base de données de l'autre composant.

+0

I il est nécessaire (par exemple) de consigner/d'auditer les changements par rapport à un identifiant d'utilisateur ou de définir la "propriété" des données par l'utilisateur comment concilier ce qui précède? Les contraintes de clés étrangères sont évidemment utiles? – Murph

+0

Ajoutez une colonne pour stocker le guid que le fournisseur d'appartenances utilise pour identifier l'utilisateur. Vous pouvez écrire cette information dans le journal que le DB applique ou non l'intégrité référentielle. –

Questions connexes