最近はRailsの人気もあって、activerecordをお手本にする人も多いです。しかし、Rails のことを聞く前に (私のピア グループはオープン ソースのファンではなく、.NET スクールで教えられていました...)、最終年度のプロジェクトを行っているときに、モデルのこの定義を見つけました。
このモデルは、エンタープライズ データと、このデータへのアクセスと更新を管理するビジネス ルールを表します。多くの場合、モデルは現実世界のプロセスのソフトウェア近似として機能するため、モデルを定義する際には単純な現実世界のモデリング手法が適用されます。
モデルがactiverecordのように1つのテーブルを表す必要があるとは言いません。通常、トランザクション内では、いくつかの無関係なテーブルにクエリを実行してから、さまざまなテーブルのデータを操作する必要があります...したがって、activerecord がモデルとして使用される場合、いずれかがすべてのロジック コードをコントローラーに詰め込む必要があります (これは、一部の php フレームワークで一般的なものです)。これにより、activerecord モデルのテストやハッキングが困難になり、マップ先のテーブルだけでなく、他の関連テーブルに対してもデータベース操作を実行できます...
では、MVC アーキテクチャ パターンのモデルとして (IMHO) activerecord を悪用することの何がそんなに優れているのでしょうか?