Rails 怎样才是正真的 active record

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

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

呵呵,有句话你说得比较对:跟写 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 这种方法).

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