我有一个固定装置表,看起来像这样;
- user_id
- opponent_id
- gameweek
- league_id
我还有一个结果表,用于存储fixture的结果以及它们进入时的结果。
- user_id
- gameweek
- league_id 结果
我正在努力的是两者之间的关系,以及当我需要它时如何称呼这种关系。
基本上,每个fixture包含两个结果;一个user_id_result和一个opinient_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
表中来进一步简化它。让它为空,当游戏完成时,更新该列。