0

MVCフレームワークを操作し、モデルを使用してコントローラーからデータベースにクエリを実行する場合、ベストプラクティスは何ですか?

モデルは、コントローラーがデータベースにクエリを実行できるようにするための非常に柔軟な機能を提供する必要がありますか?コントローラーからの呼び出しのように:

User->find ([
    { 
        or => [ 
            {field => 'name', value => 'john', op => '~' },
            { 
                and => [
                    { field => 'organization', value => 'acme', op => '~' },
                    { field => 'city', value => 'tokyo', op => '=' }
                ]
             }
        ],
     });

    } 

または、モデルに次のような呼び出しをもたらす厳密なAPIが必要です。

User->find_john_or_people_from_acme_in_tokyo();

それについて行く最良の方法は何ですか?SQLはモデル全体に​​配置する必要がありますか?または、1つのqueryFactory関数に含まれていますか?正しい方向に向けてください。いくつかのOSコードは素晴らしいでしょう。

ありがとう!

4

2 に答える 2

2

ModelとDataAccessを2つの異なるレイヤーとして分離することは常に良い習慣です。これは、モデル層での論理的分離のベストプラクティスについて説明しています。これは、ViewModelレイヤーを変更せずに基になるデータアクセスエンティティを変更する必要がある場合に役立ちます。

モデルコードをMVCの論理部分に分割するためのベストプラクティス?どちらがベストか?

于 2011-05-05T17:38:47.217 に答える
0

データベース関連のすべてのコードを個別の DAO レイヤーに分離することをお勧めします。そうすれば、ビジネス ロジック コードは、使用している特定のデータベース テクノロジ (JDBC、Hibernate、JPA など) や、データがデータベースに格納されているか、他のストアに格納されているかにさえ依存しません。

于 2011-05-05T17:27:36.510 に答える