1
我對用於記錄足球(足球)比賽統計信息的Rails應用程序的數據庫設計有些疑問。多個has_many通過相同模型之間的關聯
我有三個型號:
- 比賽
- 球員
- 目標
其中有如下關係:
- 每場比賽可以有很多進球的進球主隊球員
- 每場比賽可以被客隊球員
- 每個球員(的家庭和客隊)進了很多球能進很多球在比賽中
這裏是我的模型的結構:
class Match < ActiveRecord::Base
has_many :home_goals,
class_name: 'Goal',
foreign_key: 'home_match_id'
has_many :home_scorers,
class_name: 'Player',
foreign_key: 'home_scorer_id',
through: :home_goals
has_many :visitor_goals,
class_name: 'Goal',
foreign_key: 'visitor_match_id'
has_many :visitor_scorers,
class_name: 'Player',
foreign_key: 'visitor_scorer_id',
through: :visitor_goals
...
end
class Goal < ActiveRecord::Base
belongs_to :home_match,
class: 'Match',
foreign_key: 'home_match_id'
belongs_to :visitor_match,
class: 'Match',
foreign_key: 'visitor_match_id'
belongs_to :player
end
class Player < ActiveRecord::Base
has_many :goals
has_many :home_matches,
class_name: 'Match',
foreign_key: 'home_scorer_id',
through: :goals
has_many :visitor_matches,
class_name: 'Match',
foreign_key: 'visitor_scorer_id',
through: :goals
...
end
我可以做這樣的嵌套 「has_many_through」 的關係?
不尋常的是,一名球員可以在比賽中得分超過一個球。因此,有可能有同一名球員和相同比賽的多個目標。 這是可能的或可能導致錯誤?
我的終極目標是能夠統計所有比賽中球員的進球數,獲得每場比賽的主隊球員名單,主場球員,參觀球員和參觀者目標。有沒有更好的方法來組織數據庫?
你爲什麼不嘗試'rails console'中的所有功能? – Surya 2014-09-03 10:35:24