Использование таблицы в другой базе данных - PullRequest
5 голосов
/ 15 апреля 2011

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

Например, у меня есть базы данныхdb1 и db2

db1 имеет пользователей таблиц, поэтому я хочу, чтобы db2.users указывал на db1.users.

Я знаю, что могу настроить триггеры и что не синхронизировать две отдельные таблицы, но этозвучит круче:)

РЕДАКТИРОВАТЬ

Так что в моем коде я использую sql, например

select * from users

Теперь, на уровне базы данных,Я хочу, чтобы "пользователи" были на самом деле db1.users.Затем, если я хочу, я могу удалить псевдоним / указатель и «выбрать * из пользователей» будет указывать на таблицу пользователей в текущей базе данных.Я думаю, что я ищу, что-то типа "глобального псевдонима".

Ответы [ 2 ]

7 голосов
/ 15 апреля 2011

Просто использовать его напрямую из другой базы данных?

SELECT ... FROM `db1`.`users` LEFT JOIN `db2`.`something`
4 голосов
/ 15 апреля 2011

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

Оба метода не будут полезны, если db1 недоступен.Как уже отмечал Эммерман, вам нужно сохранить данные в db2, если вы хотите подготовиться к случаю недоступности db1.

...