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是否應該遍佈整個模型?或者包含在一個queryFactory函數中?你能指點我正確的方向嗎?一些操作系統代碼會很棒。

謝謝!

回答

0

一個好的做法是將所有與數據庫相關的代碼分離到單獨的DAO層中。這樣,您的業務邏輯代碼就不依賴於您正在使用的特定數據庫技術(JDBC vs. Hibernate vs. JPA等),甚至不依賴於數據是存儲在數據庫中還是存儲在其他存儲中。