キャンペーンの分析を表示したい。ここにいくつかのコンテキストがあります:
- キャンペーン統計は、特定の広告についてさまざまな企業によって収集されます
- 多くの場合、統計は複数の会社によって同じ広告に対して生成されます
- 統計は、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 に追加することは理にかなっていますか?