2010-01-25 3 views
3

J'ai un peu un problème, et pour être honnête, je ne pense pas qu'il y ait une réponse, mais je vais essayer quand même. J'ai donc deux bases de données [A] -> Company et [B] -> Product. J'ai donc deux bases de données [A] -> Company et [B] -> Product. Les deux bases de données ont une table de pays qui est ensuite liée à d'autres tables dans chaque base de données individuelle. Le problème est que les données entre les deux tables de pays est un doublon complet. Donc, je dois essentiellement dupliquer certaines des relations dans chaque base de données, et la maintenance en plus de cela est simplement difficile ...Sql Server 2008 Liaison de tables inter-base de données (relations)

Donc, je suis curieux de savoir s'il existe un moyen de créer une relation entre les bases de données donc je ne peux avoir qu'un seul ensemble de tables Country + Helper qui régissent les deux bases de données?

Merci d'avance!

Répondre

2

Eh bien, vous voudrez peut-être penser à avoir une base de données de transaction, et deux bases de données pour la persistance des données? Beaucoup de travail, mais il semble que la meilleure option viable - chaque transaction dans l'écriture déclencherait une écriture dans chacune des bases de données «lues»? Je ne suis pas sûr de comprendre complètement la question, peut-être?

+0

Je pensais quelque chose de similaire. Je pensais à une troisième base de données [C] qui serait en lecture seule et [A] et [B] auraient des relations «fausses» basées encore sur les clés primaires de [C] Je devrais faire le lien dans le code. Pas joli, mais cela réduit la complexité des deux bases de données. – Gup3rSuR4c

+0

Hmm c'est un moyen. Si vous faites un peu de recherche sur les concepts de partage et le stockage RAID, vous pourriez avoir quelques idées. Je pense que vous voulez réduire la complexité, transaction sage, à une DB, puis distribuer les résultats à chaque DB de stockage. Quelque chose dans ce sens. –

0

Vous ne pouvez pas faire cela avec des contraintes de clé étrangères. Vous pouvez renforcer la relation avec les déclencheurs, mais c'est un peu pénible.

4

Vous ne pouvez pas avoir de relations physiques couvrant plusieurs bases de données pour appliquer des contraintes FK. Vous pouvez toujours avoir les tables de recherche/d'assistance de base dans une base de données, mais il vous suffit d'avoir une contrainte FK inférée à partir des tables des autres bases de données - une hypothèse logique, plutôt que quelque chose de physiquement contraint .

0

Conserver dans le 1er tableau de base de données & créer une vue de ce tableau dans la base de données 2

0

Oui. Conservez la table Country dans la première base de données et créez une vue de la table country de database1 vers la base de données2. Aucune donnée physique n'est là seulement vue donc pas besoin de paniquer.

Questions connexes