我正在使用rails并且我有这种困境:
我的关联设置如下:
团队 - >播放器 - >匹配 - >游戏 - > PlayerStats
就像在,球队有球员,球员有比赛,比赛最好有五个并且有比赛,并且比赛中的每个球员都有统计数据。
然而,如果我想让球员达到目标,我必须循环完成所有比赛,并且每场比赛都要看每场比赛并从每场比赛中抽出他们的统计数据。
如果我在加载页面时为多个统计信息执行此操作,这会非常费力吗?是否有更好的方法来解决这个问题?
答案 0 :(得分:1)
您的架构应如下所示
Team(id, name)
Player(id, name)
Match(id, name)
Game(id, name, match_id)
PlayerStat(id, match_id, team_id, player_id, game_id, goal_count)
对于玩家总目标查询将是
player.player_stats.sum(:goal_count)
与
相同PlayerStat.where(player_id: 2).sum(:goal_count)