首页 > 解决方案 > Laravel:关系用户有一个组,组有很多用户

问题描述

我想在两个表“用户”和“组”之间建立关系,在这种关系中,一个用户只属于一个组,并且该组有多个用户,要解决这个问题,我应该如何设计表?需要一个表“group_user”?

标签: laravel

解决方案


您应该只使用两个名称为“用户”和“组”的表。因为一个用户只有一个组。所以不需要任何数据透视表。

表格列应该是这样的:

用户: id, name, group_id

:ID,名称

在 User 实体中,您应该这样做:

/**
 * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
 */
public function group()
{
    return $this->belongsTo( Group::class, 'group_id', 'id' );
}

在 Group 实体中:

/**
 * @return \Illuminate\Database\Eloquent\Relations\HasMany
 */
public function users()
{
    return $this->hasMany( User::class, 'group_id', 'id' );
}

推荐阅读