我想创建一个运动统计网页,我可以为每位玩家存储不同的运动数据。玩家可以获得不同运动的统计数据。
我想这样做的方法是创建一个整体Stat模型,其中包含每个统计数据的基本属性,无论运动,如地点,日期,对手等。这样,每项运动都会继承自 Stat 模型 - 例如 FootballStat 和 BasketballStat 。
似乎使用单表继承将证明效率非常低,因为每项运动都有非常不同的统计数据。因此,我只找到了另外两个选项:
在这种情况下,您认为哪一个会更有效?如何实施呢?
这就是我想要做的,也许你可以请帮助我。谢谢!
答案 0 :(得分:1)
多态协会肯定是要走的路。您可以按如下方式实现它。
Class Stat
belongs_to :sportable,
belongs_to :player
end
Class Sport1
has_many :stats, :as => :sportable
# various attributes for sport1
end
Class Sport2
has_many :stats, :as => :sportable
# various attributes for sport2
end
Class Player
has_many :stats
end