MVC 実装のモデルは、ビジネス モデルであるか、そうあるべきです。
ビジネス モデルは、アプリケーションに関連するビジネスのエンティティの動作と属性を記述します。これをコード化すると、エンティティはクラスになり、動作と属性はそれぞれそれらのクラスのメソッドとプロパティになります。
アプリケーションには、その情報を保存する場所が必要です。メモリに制限がなく、停電や OS の再起動が不要であれば、ビジネス モデルとしては十分です。ただし、現実の世界では、クラスのプロパティを、アプリケーションやコンピューターのシャットダウンに耐えられる場所に保存する必要があります。
そのため、ビジネス モデルは何らかのタイプのデータ ストアを必要とし、使用します。このデータ ストアを編成する方法がデータ モデルです。ほとんどの場合、リレーショナル データベースが最適なデータ ストアであるため、データ モデルは通常、リレーショナル データベースの設計です。
データ モデルは論理レベルにあり、オブジェクト指向ビジネス モデルにより似ていますが、このコンテキストでは通常、論理モデルの技術的な実装について話しています。(重要な違いの 1 つ: 論理モデルでは、テーブル間の MN 関係が許可されます。正規化された技術モデルには、2 つの元のテーブルと N-1 関係を持つリンク テーブルがあります)。
ビジネス モデルの OO の性質は、正規化されたテーブルと列の設計に直接対応しません。ORM (オブジェクト - リレーショナル - マッピング) ライブラリは、多くの場合、クラスの属性をリレーショナル データベースのテーブルと列にマップするために使用されます。
ビジネス モデルはデータ ストアを使用し、したがってデータ モデルを使用し、それらが一緒になって MVC 実装のモデルを構成するため、それらの区別が曖昧になることがよくあります。それぞれの役割を明確にしておくことは非常に価値があると思います。ロジックがどこに行くべきかを決定するのに役立ちます。
たとえば、rsenna の回答とは反対に、ビジネス モデルはあらゆる種類の抑制と均衡を定義する可能性があるため、1 人の従業員の給与を変更することは、文字通りの値に変更する場合でも、依然としてビジネス モデルの機能であることに満足します。従業員の給与を変更するための検証およびその他のビジネス ルール。たとえば、ビジネスには、給与が x パーセントを超えて変化してはならない、CEO の給与を決して超えてはならない、労働組合の規則に準拠している、などの規則がある場合があります。
データベース中心の開発者と多くのデータベース管理者は同意しませんが、この種のルールはデータ モデルではなくビジネス モデルに属します。おそらく、ビジネスモデルは通常、ある種のプログラミング言語で実装され、データモデルはデータベースに実装されており、DBA はデータベースを適切かつ有効で一貫性のあるものに保ちたいと考えているためです。
ルールは依然としてデータ モデルではなく、ビジネス モデルの一部であると言えますが、もちろん、トリガーやストアド プロシージャにルールを実装することもできます (同様に)。ビジネスモデルのルールがどこに実装されるかは、...、実装、詳細の問題です。