我已将Laravel 5.2配置为包含2个数据库连接。我知道如何连接到我的控制器,模型等中的每一个。我唯一不确定的是以下内容。
系统A有一个用户表,其中包含系统A的所有用户。
我现在在系统B中工作。系统B有自己的用户表和系统B的所有用户。系统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中创建的,但它是针对系统A中的用户的。因此我添加了以下内容
$table->integer('systemA_user_id')->unsigned()->default(0);
$table->foreign('systemA_user_id')->references('id')->on('users')->onDelete('cascade');
问题是它当前正在引用System B用户表。我需要它做的是引用System A用户表。
这样的事情会成为可能吗?
由于
答案 0 :(得分:0)
我相信你可以这样做references('connection.tablename.id')
答案 1 :(得分:0)
它闻起来像一个糟糕的设计。您必须考虑在系统之间建立某种API连接,而不是尝试使用低级别的基础架构来直接进行通信。微服务思维方式。