2010-01-25 4 views
3

У меня есть проблема, и, честно говоря, я не думаю, что есть ответ, но я все равно попробую.Sql Server 2008 Связывание таблицы между базами данных (отношения)

Итак, у меня есть две базы данных [A] -> Компания и [B] -> Продукт. Обе базы данных имеют таблицу Country, которая затем привязана к другим таблицам в каждой отдельной базе данных. Проблема в том, что данные между двумя таблицами стран являются полным дубликатом. Таким образом, я, по сути, должен дублировать некоторые отношения в каждой базе данных, а обслуживание на вершине этого просто сложно ...

Итак, мне любопытно, существует ли способ создать взаимосвязь между базами данных между таблицами поэтому я могу иметь только один набор таблиц Country + Helper, которые управляют обеими базами данных?

Заранее благодарен!

ответ

2

Возможно, вам захочется подумать о наличии одной базы данных транзакций и двух баз данных для сохранения данных? Много работы, но это кажется лучшим жизнеспособным вариантом - каждая транзакция в записи вызовет запись в каждую из «прочитанных» баз данных? Может быть, я не уверен, что понимаю вопрос?

+0

Я думал о чем-то подобном. Я думал о третьей базе данных [C], которая будет доступна только для чтения, а [A] и [B] будут иметь «поддельные» отношения, все еще основанные на первичных ключах в [C]. Мне просто нужно было бы сделать ссылку в коде. Не очень, но это немного снижает сложность двух баз данных. – Gup3rSuR4c

+0

Хм это один из способов. Если вы немного поработаете над концепциями sharding и хранилищем RAID, вы можете получить некоторые идеи. Я думаю, вы хотите уменьшить сложность, транзакцию, одну БД, а затем распределить результаты по каждой базе данных хранения. Что-то в этом роде. –

0

Вы не можете сделать это с помощью внешних ключей. Вы могли бы установить связь с триггерами, но это немного боль.

4

Вы не можете иметь физические отношения, которые охватывают несколько баз данных, для обеспечения ограничений FK.

В одной базе данных все еще есть таблицы поиска/вспомогательного поиска ядра, но вам просто нужно иметь наложенное ограничение FK на него из таблиц в других базах данных - логическое предположение, а не физическое ограничение ,

0

Хранить в 1 таблице базы данных & создать представление из этой таблицы в базе данных 2

0

Да. Сохраните таблицу Country в 1-й базе данных и создайте представление в таблице country1 базы данных1 в базе данных2. Никаких физических данных не существует, поэтому нет необходимости паниковать.

Смежные вопросы