MySQL Laravel 使外键唯一

标签 mysql laravel foreign-keys foreign-key-relationship

在我使用 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/

相关文章:

mysql - 如何计算 SQL 查询中列中的行数?

sql - 基于索引名称而不是表(列)创建外键

Laravel 4 - 将 ID 值添加到下拉选择

Laravel + 问答框架

entity-framework - 如何让 EF6 遵守关联/关系多样性中的唯一约束(在 FK 上)?

mysql - 如何正确使用外键

mysql - CAST(日期 AS DATE) 日期格式

php - fatal error : Call to undefined function mysqli_connect() while extension are set properly

python - 是否必须引用 MySQL 查询中的每个值?

laravel - 如何在 Laravel 中向多个收件人发送电子邮件?