Laravel关系结构

时间:2015-05-29 14:21:10

标签: php mysql laravel laravel-5

我有一个看起来像这样的灯具表;

  • user_id
  • opponent_id
  • 游戏周期
  • league_id

我还有一个结果表,用于存储灯具的结果以及它们何时进入。

  • USER_ID
  • 游戏周期
  • league_id
  • 结果

我正在努力的是两者之间的关系,以及在我需要时如何称呼这种关系。

基本上,每个夹具包含两个结果;一个user_id_result和一个opponent_id_result(两者都引用users表中的id)

我在Fixture模型中做了类似的事情;

public function userResult()
{
    return $this->hasMany('App\Models\Result', 'league_id', 'league_id')
        ->where('user_id', $this->user_id)
        ->where('gameweek', $this->gameweek);
}

而且,虽然这很有效,但我认为它不是很正确,并且在通过急切加载调用时也不起作用。

谢谢你们。

1 个答案:

答案 0 :(得分:0)

这似乎不是一个好的数据库结构,可能是问题的根源所在。两个表都有3列是相同的。不仅效率低下而且令人困惑。

乍一看,在结果表{3}},user_idgameweek中删除3列会更有意义,并用league_id替换它们。什么会处理你的关系。 fixture_id

我不知道这里存储了什么,但是可以通过将fixtures.id = results.fixture_id表全部放在一起并将results列添加到results上来进一步简化它表。让它为null,当游戏完成后,更新该列。