Active Record パターンを ORM ベースとして実装するyiiフレームワークを使用しています。テーブルの列を反映する属性を持つテーブル ラッパー クラスである CActiveRecord クラスがあります。したがって、このクラスの各オブジェクトはデータベースの行を表します。
Wikiは Active Record パターンについて次のように述べています。
アクティブ レコードは、データベース内のデータにアクセスするためのアプローチです
と
データベース テーブルまたはビューは、クラスにラップされます。したがって、オブジェクト インスタンスはテーブル内の 1 つの行に関連付けられます。
ここまでは順調ですね。
しかし、たとえば統計データを取得する複雑な生の SQL クエリをどこに配置すればよいでしょうか?
そして、より一般的には、アクティブなレコード オブジェクトにできないデータ (集計クエリで取得したデータなど) を取得するメソッドをどこに配置する必要がありますか? たとえば、オブジェクトではなく配列を取得したくない場合はどうすればよいでしょうか?