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 函数中?你能指出我正确的方向吗?一些操作系统代码会很棒。

谢谢!

4

2 回答 2

2

将 Model 和 DataAccess 分离为两个不同的层始终是一个好习惯。这描述了模型层逻辑分离的最佳实践。当需要更改底层数据访问实体而不修改 ViewModel 层时,这会有所帮助。

在 MVC 中将模型代码划分为逻辑部分的最佳实践?哪个是最好的?

于 2011-05-05T17:38:47.217 回答
0

一个好的做法是将所有与数据库相关的代码分离到一个单独的 DAO 层中。这样,您的业务逻辑代码不依赖于您使用的特定数据库技术(JDBC 与 Hibernate 与 JPA 等),甚至不依赖于数据是存储在数据库中还是存储在其他存储中。

于 2011-05-05T17:27:36.510 回答