私はデータベーススキーマを考え出しましたが、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 belongs_toの:team_year
Year.rb belongs_toの:team_year
Team_Year.rb にhas_many:チーム has_many:年
チーム_User.rb belongs_to:user belongs_toの:team_year にhas_one:役割
Game.rb にhas_many:team_years
Player_stats.rb belongs_toの:team_user belongs_toの:ゲーム
私は右の上だかはわかりませんトラックかどうか。さらに、私はこれらの関連を宣言することをどのように活用するのか分かりません。私は間違いなくTeam.name(Player_Stat.game_idを指定)をTeam.find(TeamYear.find(Game.find(player_stat.game_id).away_team_year_id).team_id).name
よりも簡単にしたいと思っています。
正規化されたDBを作成するのが難しいですか?私はこの問題について異なって考えなければならないでしょうか?助けや指導に感謝します。
このガイドをお読みください。 http://guides.rubyonrails.org/association_basics.html – MikDiet