私はデータベース スキーマを思いつきましたが、Rails ORM よりも古い SQL の習慣に影響されているように感じます。これが私が開発したスキーマです。
現在、上の画像のすべてのテーブルのモデルを作成しましたが、関連付けを調査した結果、Rails Associations を使用して多対多のリレーショナル テーブルを作成できると考えています。
私の PlayerStats#index では、<%= Year.find(TeamYear.find(TeamUser.find(player_stat.team_user_id).team_year_id).year_id).year %>
良くないとわかっているようなことをしていることに気づきました。そのため、上記の正規化されたスキーマに基づいてモデルの関連付けを構築する方法についてのガイダンスを探しています。これが私の推測です:
User.rb has_many :team_users
Team.rb 所属先 :team_year
Year.rb 所属先 :team_year
Team_Year.rb has_many :teams has_many :years
Team_User.rb の所属先 :ユーザーの所属先 :team_year has_one :役割
Game.rb has_many :team_years
Player_stats.rb 所属先 :team_user 所属先 :ゲーム
正しい軌道に乗っているかどうかはわかりません。さらに、これらの関連付けの宣言を利用する方法がわかりません。Team.name (指定された Player_Stat.game_id) を よりもはるかに簡単にしたいと思いTeam.find(TeamYear.find(Game.find(player_stat.game_id).away_team_year_id).team_id).name
ます。
正規化された DB を取得しようと努力しすぎていませんか? この問題を別の方法で考えるべきですか?ヘルプやガイダンスに感謝します。