我有很多关系。可以说我有很多用户,这些用户可以位于许多组中,反之亦然。
我不会制作包含以下各列的表
group_user
id /名称/用户ID /组ID
由于我只有3个组,初级,中级和高级,所以我不想为他们另设一张桌子。我的想法是采取以下方法:
id /名称/用户ID /组ID
1 /初中/空/空
2 /中/空/空
3 /上级/空/空
因此,现在当我想插入一个group_id时,我将使用刚刚使用NULL user_id和group_id创建的这3个ID。
我的记录将如下所示:
id /名称/用户ID /组ID
4 / NULL / 125/1->同一表中Junior组的ID。
5 / NULL / 125/3->同一表中高级组的ID。
Is this a valid way to do it? How wrong it is?
答案 0 :(得分:0)
我建议遵循以下正确步骤:
表1用户表: id |名称
表2分组表: id |名称
表3 group_user数据透视表: id | user_id | group_id
注意:表3永远不应包含可为空的值
这种关系如下所示,现在我们有两个模型,一个用户模型和一个组模型。
两者都将具有彼此的belongsToMany关系。
以下是您将在User模型中使用的方法:
public function groups()
{
$this->belongsToMany(User::class);
}
这是您将在“组”模型中使用的方法:
public function users()
{
$this->belongsToMany(Group::class);
}
这是推荐的继续方法。