2014-10-14 14:26:18 3461次浏览 2条回答 0 悬赏 5 金钱

用CDbCommand操作CRUD和用Active Record有什么区别?
权威指南介绍:
Active Record是为了不让我们写冗长的SQL语句,在性能调节上又说:不要滥用 Active Record。虽然 Active Record 擅长以一个 OOP样式模型化数据, 它实际上为了它需要创建一个或几个对 象来代表每条查询结果降低了性能。 对于数据密集的应用,在底层使用 DAO 或 数据库接口 将是一个更好的选择。

哪位大神能具体说一下什么情况下用Active Record合适,而什么情况下又是我们直接写SQL执行合适呢?

最佳答案

  • 回答于 2014-10-18 22:28 举报

    其实AR也是调用了CDbCommand,在CActiveRecord的1297行(版本1.1.13)

    return $all ? $this->populateRecords($command->queryAll(), true, $criteria->index) : $this->populateRecord($command->queryRow());
    

    用AR的话可以使用Scenario,Scope等,另外,zii跟AR绑定比较深,用zii的话就要用AR

您需要登录后才可以回答。登录 | 立即注册
YII_LOVE
见习主管

YII_LOVE 浙江

注册时间:2014-10-13
最后登录:2015-03-07
在线时长:10小时39分
  • 粉丝2
  • 金钱115
  • 威望0
  • 积分215

热门问题