Меня интересуют ваши мысли о ловушках объединения двух или более таблиц из разных баз данных. Я попытаюсь привести пример.
Предположим, что таблица Table1
находится в базе данных DatabaseA
, а Table2
находится в DatabaseB
.
Скажем, у меня есть представление, в DatabaseA
, которое вытаскивает некоторые данные из Table1
и некоторых других таблиц в DatabaseA
'.
Это представление используется для перемещения данных в другую базу данных, позвольте этому, unimaginatevely, DatabaseC
.
Если мне нужны данные из Table2
, мой инстинкт состоит в том, чтобы напрямую присоединиться к Table2
в этом представлении, вроде как table1 inner join DatabaseB..table2 on [some columns]
Делать это довольно просто и быстро, но у меня в голове головокружительный голос, который говорит мне, чтобы я этого не делал. Мои заботы состоят в том, что мы не можем отслеживать все объекты в зависимости от Table2
, поэтому, если я что-то меняю, я должен быть очень осторожным и помнить всюду, где я использую эту таблицу. Итак, вроде как разрыв SRP для этого представления (и двух баз данных), потому что это представление может меняться от двух разных действий (выполняется в двух разных базах данных: Изменение Table1
или изменение Table2
)
Меня интересуют ваши мнения. Это хорошая или плохая идея? Каковы были бы проблемы с этим подходом (умение работать мудро, поддерживать мудрость и т.д.), И если у вас есть реальный мировой опыт, когда этот подход либо был большой ошибкой, либо был спасателем жизни для вас.
P.S: Я искал эту тему в google и SO, но не смог найти ничего подобного. Я с радостью возьму минус голоса, дублирую вопросы и другие "выговоры" от пользователей SO, чтобы иметь другое представление об этой проблеме.
P.P.S: Я использую SQL Server 2005.
Спасибо и надеюсь, что я убедился:)