我想出了一个数据库模式,但我觉得它比 Rails ORM 更受我旧 SQL 习惯的影响。这是我开发的架构。
目前,我已经为上图中的所有表制作了模型,但是,在研究了关联之后,我相信我可以使用 Rails 关联来制作一些多对多的关系表。
在我的 PlayerStats#index 中,我发现自己在做一些<%= Year.find(TeamYear.find(TeamUser.find(player_stat.team_user_id).team_year_id).year_id).year %>
我知道不好的事情。因此,我正在寻找有关如何基于上述规范化模式构建模型关联的指导。这是我的猜测:
用户.rb has_many :team_users
Team.rb 属于_to :team_year
Year.rb 属于_to :team_year
Team_Year.rb has_many :teams has_many :years
Team_User.rb belongs_to :user belongs_to :team_year has_one :role
Game.rb has_many :team_years
Player_stats.rb 属于_to :team_user 属于_to :game
我不确定我是否走在正确的轨道上。此外,我不确定如何利用声明这些关联。我肯定想让 Team.name(给定 Player_Stat.game_id)比Team.find(TeamYear.find(Game.find(player_stat.game_id).away_team_year_id).team_id).name
.
我是否太努力拥有一个标准化的数据库?我应该以不同的方式思考这个问题吗?我感谢任何帮助或指导。