Я сконфигурировал Laravel 5.2, чтобы содержать 2 подключения к базе данных. Я знаю, как я могу подключиться к каждому из контроллеров, моделей и т. Д. Единственное, что я не уверен в следующем, это следующее.Совместное использование баз данных в нескольких системах
система А есть таблица пользователей, которые содержат всех пользователей системы А.
Сейчас я работаю в системе B. Система B имеет свою собственную таблицу пользователей со всеми пользователями системы B. System B нужно получить список пользователей в Системе A.
Здесь проблема. Для системы B я создаю свою миграцию. Система B позволяет пользователям этой системы, чтобы создать проект, чтобы моя миграция выглядит следующим образом
Schema::create('projects', function (Blueprint $table) {
$table->increments('id');
$table->string('projectName')->default('');
$table->string('projectValue')->default('');
$table->integer('user_id')->unsigned()->default(0);
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->integer('systemA_user_id')->unsigned()->default(0);
$table->foreign('systemA_user_id')->references('id')->on('users')->onDelete('cascade');
$table->engine = 'InnoDB';
});
, выполнив следующие действия, я могу связать проект в системе B для пользователя в системе B.
$table->integer('user_id')->unsigned()->default(0);
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
Однако, хотя этот проект был создан в системе B, то для пользователя в системе А. Поэтому я добавил следующие
$table->integer('systemA_user_id')->unsigned()->default(0);
$table->foreign('systemA_user_id')->references('id')->on('users')->onDelete('cascade');
проблема заключается в том, что в настоящее время она ссылается на вкладку пользователи системы B ле. Мне нужно, чтобы это было ссылкой на таблицу «Системные пользователи».
Возможно ли подобное?
Благодаря
Что было бы лучшим вариантом в этой ситуации? Системе B необходимо получить что-то из базы данных System A. Должен ли я создавать API для этого? –
Если есть точка в разделении баз данных, тогда возникает причина для логического разделения ваших систем и последующего подключения через API. Возможно, даже с использованием разных фреймворков или даже языков программирования. – dogik
Однако, с другой стороны, если вы не думаете, что у вас есть время/желание/хорошая причина для разделения ваших систем на уровне кода или если это наследие разделения баз данных, я бы попытался объединить эти базы данных для создания одна, монолитная база данных. Если вы ожидаете большого количества связей между базами данных (чтение объединений, подзапросов и т. Д.) И принимая во внимание, что вы используете laravel (где красноречиво иногда бывает жесткая задница, даже когда вы работаете с единой базой данных), я бы рекомендовал столкнуться с базами данных, если возможное. – dogik