我有一个固定装置表,看起来像这样;
- 用户编号
- opponent_id
- 游戏周
- league_id
我还有一个结果表,用于存储夹具进入时的结果。
- 用户编号
- 游戏周
- league_id
- 结果
我正在纠结的是两者之间的关系,以及如何在需要时调用这种关系。
本质上,每个 fixture 包含两个结果;一个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);
}
而且,虽然这有效,但我认为它不太正确,并且在通过预加载调用时也不起作用。
谢谢你们。
最佳答案
这似乎不是一个好的数据库结构,这可能是您问题的根源所在。两个表都有 3 列,它们是一样的。这不仅效率低下,而且令人困惑。
乍一看,在结果表中删除 3 列更有意义,user_id
、gameweek
和 league_id
并替换它们使用 fixture_id
来处理您的关系。 fixtures.id = results.fixture_id
。
我不知道其中存储了什么,但可以通过将 results
表放在一起并添加 results
列来进一步简化它fixtures
表。让它为空,当游戏结束时,更新该列。
关于php - Laravel 关系结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30532015/