用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2771|回复: 2
收起左侧

[讨论/交流] Active Record 模式好用吗?

[复制链接]
发表于 2010-5-20 15:12:06 | 显示全部楼层 |阅读模式
Active Record模式好用吗?我个人觉得不好用
虽然可以通过$this->db->from(),$this->db->select(),$this->db->orderby(),$this->db->where()来构建一个sql语句,但是他只是把select 语句的所有组成部分分开,后面还是用通过$this->db->query($sql);来完成,所以及时你通过上面的快速方法$this-db->select('filed')->where()->from('table')->orderby('orderbyfield')来完成一个sql语句之后,要执行该语句还是要$this->db->query($this-db->select('filed')->where()->from('table')->orderby('orderbyfield')->_compile_select());来执行,还不如直接$this->db->query("select * from `table` where 1=1 orderby field1 asc");来得干脆省事,还是有,通过orderby 来排序的化经常是需要按照两个字段来排序的,比如如果要显示博客首页的博文列表,显示的条件是按‘推荐’降序,按添加时间降序来排列的orderby tuijian desc,addtimedesc来,如果用$this->db->orderby()的化要两次分开$this->db->orderby('tuijian','DESC')->orderby('addtime','DESC');我觉得这样设计好麻烦。不知道是我还没看到Action Record模式的好处还是怎么样,哪位大侠解释下。
发表于 2010-5-20 16:32:39 | 显示全部楼层
转变编程思维与模式向MVC靠拢。
发表于 2010-5-21 10:22:55 | 显示全部楼层
用不用 AR 本身就是个爱好问题。
我觉得用 AR 使得 SQL 更清晰了,也可以为跨数据库提供很大的便利。
但如果你觉得直接写 SQL 更好,那就直接写 SQL,没问题。

本版积分规则