我和Rails一起工作,我遇到了这样的困境:
我的关联设置如下:
团队->玩家->比赛->游戏->玩家状态
就像在,球队有球员,球员有比赛,比赛是最好的五场和有比赛,每个球员在游戏中有统计。
然而,如果我想让一个球员的总目标,我必须做循环通过他们的所有比赛,每一场比赛看每场比赛,并从每场比赛中提取他们的统计数据。
如果我在加载页面时多做统计,这会不会太繁琐?也许有更好的方法来解决这个问题吗?
最佳答案
您的架构应该如下所示
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)
关于mysql - Rails通过多个模型获取数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39818888/