【发布时间】:2019-02-19 09:09:29
【问题描述】:
我想在两个表“users”和“groups”之间建立关系,在这种关系中,一个用户只属于一个组,而该组有多个用户,要解决这个问题,我应该如何设计表?需要一个表“group_user”吗?
【问题讨论】:
标签: laravel
我想在两个表“users”和“groups”之间建立关系,在这种关系中,一个用户只属于一个组,而该组有多个用户,要解决这个问题,我应该如何设计表?需要一个表“group_user”吗?
【问题讨论】:
标签: laravel
您应该只使用两个名为“用户”和“组”的表。因为一个用户只有一个组。所以不需要任何数据透视表。
表格列应该是这样的:
用户:id、姓名、group_id
组:ID、名称
在用户实体中,你应该像这样做关系:
/**
* @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' );
}
【讨论】: