php - laravel有没有办法制作3个表,一个表属于2个不同的表,具有一对一的关系
问题描述
laravel有没有办法制作,一对一的关系,一张表属于两个不同的表一对一的关系。
我正在尝试建模,一个基于 laravel 的项目,它正在投票给部长。
这是我的三个模型。
成员迁移。例如:成员作为用户进行身份验证
public function up()
{
Schema::create('members', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('username');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
2.ministers迁移文件
public function up()
{
Schema::create('ministers', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->mediumText('description');
$table->string('image')->default('no-image.jpg');
$table->unsignedInteger('votes')->default('0');
$table->boolean('status')->default('0');
$table->timestamps();
});
}
3.voters迁移文件
public function up()
{
Schema::create('voters', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('phone');
$table->enum('education', ['primary', 'intermediate', 'high-school', 'university' ] )->nullable(false)->default('primary');
$table->string('country');
$table->unsignedBigInteger('minister_id');
$table->foreign('minister_id')->references('id')->on('ministers');
$table->unsignedBigInteger('member_id');
$table->foreign('member_id')->references('id')->on('members');
$table->timestamps();
});
}
此选民迁移属于成员和部长,先生关联一位选民,用户关联一位选民。
这种正确的建模方法也是如此,这样的系统。我希望每个注册会员填写投票表,其中选择要投票的部长的下拉字段。并保存该表单,创建一个新的选民实例。我还想要一个部长投票字段在创建新的选民实例时增加两次。
解决方案
推荐阅读
- maps - 这里地图加载缓慢
- c++ - 在线程中同时使用 char 驱动程序文件处理程序时是否需要同步?
- python - 如何在 Bubble_sort 程序中获得最少的通过次数(Python 编程)
- php - 如果功能不正确,Codeigniter 登录和注销会话
- vue.js - Vue-Konva 是否支持 GLSL?
- javascript - 如何存储来自 JSON 的过滤数据并在表格中显示(EmberJS)
- sql-server - 使用变量的过滤器查询未使用索引
- tomcat - 与 mime 类型相关的 Solr 全索引错误
- c# - IIS 网站在计算过程中响应缓慢
- javascript - 使用 JSON 文件 Highcharts 的钻取图