我是写 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 这种方法).