原帖由 于 2008-7-29 22:18 发表 [i]何必搞一个Expr对象来骗自己呢,用书写SQL的方式来构造查询,不如用原生的SQL岂不是更好理解,本来就是为了简化和方便查询,如果达不到本意,又何必舍近求远~说实在,TP虽然有复杂查询的功能,我都会建议开发人员 ... 说实话,我很吃惊你这样想。。。。。之所以框架要提供数据库服务,并不单单是为了完成数据库记录的 CRUD 操作。而是希望将数据和逻辑封装在一起。就拿 thinkphp 的 model 来说,如果仅仅是完成数据库操作,而不是提供封装逻辑的能力,那这个东西和 adodb 这样的数据库抽象层有什么区别?如果 model 是用来封装逻辑的,那直接使用 sql 来查询时,model 里面封装的逻辑岂不是不起作用了?如果 model 仅仅是“将一个数组用对象来存储”,那还有什么意义。不如直接用数组得了,速度还快得多。在 fleaphp 中,所有数据库操作都是用数组来传递数据库记录。所以对数据库的操作,本质上就是处理一个个的数组。但是这种模式早已无法适应复杂应用的需求,因为业务逻辑无法和业务逻辑所需的数据封装在一起。在各个业务组件之间传递的始终只是数组,而不是业务对象。要是单纯为了完成数据库的 crud,那么类似 adodb 这样的数据库访问对象就够用了。除了最基本的 CRUD,一律用手写 SQL 来完成。 查看原帖>>