我想显示活动的分析。这是一些上下文:
- 不同公司为特定广告收集活动统计信息
- 通常,不止一家公司为同一个广告生成统计数据
- 统计数据收集在一个名为 DailyStat 的模型中
- 每个活动都涉及许多可能会或可能不会收集统计数据的公司
- 活动和公司通过活动联系起来
广告系列 -> 广告 -> DailyStat
DailyStats 既属于广告又属于公司,具体取决于生成统计数据的公司。
模型如下所示:
class DailyStat < ActiveRecord::Base
attr_accessible :ad, :clicks, :company, :date, :impressions
belongs_to :ad
belongs_to :company
end
class Ad < ActiveRecord::Base
belongs_to :campaign
has_many :daily_stats
end
class Campaign < ActiveRecord::Base
has_many :campaignizations, :dependent => :destroy
has_many :companies, :through => :campaignizations
has_many :ads, :dependent => :destroy
end
class Company < ActiveRecord::Base
has_many :campaignizations, :dependent => :destroy
has_many :campaigns, :through => :campaignizations
end
现在,我想做的最有效的是:
- 检索特定广告系列的印象摘要(按公司)
- 检索特定广告系列的每个广告的印象摘要(按公司)
作为 ActiveRecord 的新手,我尝试过使用包含、总和等,但似乎无法理解如何从活动到公司分组的统计数据(没有迭代所有广告)。
我的问题:
- 解决这个问题的有效方法是什么?
- 将活动信息非规范化并添加到 DailyStats 是否有意义?