在我使用 Laravel/Mysql 构建的应用程序中,我有两个用户表。
当我用户注册时,会创建表“User”和“UserInfo”。
UserInfo 有一个FK,它指向Users 表中的PK。
现在,我的 UserInfo 表中有一列设置为唯一,我这样做是为了确保用户只能在 UserInfo 表中拥有一条记录。
但是有可能让 FK 变得独一无二吗?我需要在表之间进行一对一的设计。
最佳答案
您可以使整数本身唯一。 foreign方法仅用于链接A表和B表之间的数据。
$table->integer('user_id')->unsigned()->unique();
$table->foreign('user_id')->references('id')->on('user_infos');
您可能正在寻找的是 Eloquent:Relationships,并且必须将其添加到您的模型中。
您可以为您的 UserInfo 模型添加此内容:
public function user()
{
return $this->belongsTo(UserInfo::class);
}
这适用于您的用户模型:
public function user_info()
{
return $this->hasOne(User::class);
}
更多信息: https://laravel.com/docs/5.2/eloquent-relationships#defining-relationships
关于MySQL Laravel 使外键唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36040419/