Объединение разных таблиц из разных баз данных и сохранение идентификатора базы данных? - PullRequest
0 голосов
/ 24 июня 2011

Я застрял в сложной ситуации.Я приведу простой пример, чтобы подчеркнуть мою проблему.

Предположим, у меня есть две базы данных; DBa содержит таблицы Ta1 и Ta2 и DBb с таблицами Tb1 и Tb2 .Все эти таблицы имеют одинаковую структуру.

Я хочу объединить содержимое Ta1 с Tb1 в объединенной таблице с именем T1 и объединить Ta2 с Tb2 в объединенном столе с именем T2 .Кроме того, мне нужен способ отметить, что любой контент (или строка) T1 и T2 поступает из базы данных DBa или DBb ,

Одним из способов может быть создание дополнительного столбца в таблицах соединений, T1 и T2 , с идентификаторами БД и заполнение строк этих столбцов с помощьюимя базы данных, откуда они берутся (т. е. DBa или DBb в зависимости от обстоятельств).То, о чем я могу думать прямо сейчас, - это ручной способ, однако я считаю, что это связано с моим ограниченным знанием SQL.

Буду очень признателен за ваши мысли по решению этой проблемы.

PS Все базы данных и таблицы находятся на одном сервере MySQL.

1 Ответ

0 голосов
/ 24 июня 2011

Наличие столбцов SourceDbID и OriginalID может показаться разумным решением - я бы определенно не помещал имя базы данных в каждую строку - гораздо лучше иметь таблицу SourceDb с именем базы данных и идентификатором и ссылаться на это. *

Другой вариант, если вы не ожидаете ввода данных из других источников, - это иметь отдельные столбцы NULLable для каждой исходной БД, например, DbAID, DbBID и т. Д. И поместите оригинальные идентификаторы в эти столбцы. Несмотря на то, что это меньше усилий для запроса, его расширение (с точки зрения ввода / вывода) не так уж и дешево, если появится другой источник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...