Rails 怎样才是正真的 active record

lucky215 · 2012年02月21日 · 最后由 quakewang 回复于 2012年02月22日 · 3873 次阅读

我是写php的,这段时间看了点rails,被强烈吸引了,也在一点点学习中,发现active record写着很舒服,跟我写php时完全不是一个概念,看了维基后大概知道了点,但是还是很模糊,不清楚到底active record是什么?他和orm的差别具体又在哪里?

共收到 9 条回复

呵呵,有句话你说得比较对:跟写php确实完全不是一个概念。

active record就是一个ORM的工具,与众不同的是,active records是基于ruby语言的,ruby语言有动态特性,可以动态的创建函数,所以,ruby通过动态分析数据库结构,在运行期间创建你需要的ORM代码,而不用你自己手动编写代码实现ORM的绑定。

ActiveRecord就是ActiveRecord,在PHP里面没有类似的概念的。在C#里面有LINQ,在Python下面有SQLAlchemy,这些是可以参照的。

Everything is on Rails.... 哈哈哈~~ 看看cakePHP 和 Yii 人家连名字都没改哦, 亲。 就叫 ActiveRecord

php系也可以去看下thinkphp,文档还是比较全的,对于模型操作这块可以看到rails里面active record的影子

亲,别玩概念,最后只会把自己玩迷。 active record只是Rails对ORM模型的实现。其实就是不用写SQL,所有对数据库记录的操作转为对对象的CRUD操作。

@camel 你的意思就是orm是个抽象的改你那,active record是这个概念的具体实现,我这么理解对吗?

可以看这本书——《企业应用架构模式》,里面说了几种ORM的思路,其中一种就叫做 ActiveRecord ,当然,现在 ActiveRecord 已经发展了,所以略有不同

activerecord是ORM的一种设计模式,它将数据库表中的一行封装成一个对象,将对应数据库的操作封装成对象上的方法,你还可以在这个对象上添加其他业务逻辑相关的方法。

还有一些其他的ORM设计模式,比如全局的DataManager(create/save在DM上)或者透明化的持久(不需要显式调用save/create这种方法).

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册