1

Я строю сложный plataform, и я хочу иметь выделенную базу данных для каждого «модуля» этого. Но мне нужно иметь «основную» базу данных, которая имеет некоторые общие таблицы, такие как таблица пользователей. Мне нужно иметь внешние ключи между таблицами в нескольких базах данных. (например, user_id)отношения между таблицами в нескольких базах данных

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

Итак, я просматриваю все свои варианты, прежде чем принимать решение.

Что вы думаете об этом?

Я использую mysql.

+1

rkosegi, нет, это не так. Этот вопрос для SQL-сервера. –

ответ

4

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


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

Я думаю, что решение состоит в том, чтобы разделить опасения по поводу данных. Пусть каждый модуль имеет свою собственную базу данных, но не позволяет модулям запрашивать другие данные! Если модулю нужны данные о пользователе, позвольте ему получить его через модуль user.

+0

Я проверю объединенные таблицы. – brpaz

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