1

我想创建一个运动统计网页,我可以在其中存储每个球员的不同运动统计数据。玩家可以拥有来自不同运动的统计数据。

我想这样做的方法是创建一个整体 Stat 模型,其中包含每个 stat 的基本属性,无论运动如何,例如地点、日期、对手等。这样,每项运动都将从统计模型 - 例如FootballStatBasketballStat

似乎使用单表继承将被证明是非常低效的,因为每项运动都有非常不同的统计数据。因此,我只找到了另外两个选项:

  • 多态关联,和
  • 多表继承。

在这种情况下,您认为哪一种会更有效?以及如何实施它?


这就是我想要做的,也许你可以帮助我。谢谢!

4

1 回答 1

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
于 2012-11-21T05:33:34.647 回答