Active Record连接了事物对象和数据库中的表,来创建一个区域model,逻辑和数据出现在一个包裹里。这是object-relational mapping (ORM)的一个实现。 ”pattern” 同样的名字被描述为 Martin Fowler:
一个对象包括数据表的一行或者view,数据库访问的encapsulates,在数据上添加逻辑。
Active Record对这部分主要的贡献是解决了原始的两个发育不良的问题:缺乏关联(associations)和遗传(inheritance)。通过添加一个简单的支配语言-像设置一个宏来描述前者并且为后者整合SingleTableInheritance样式, Active Record使得data-mapper和active record approach之间功能上的间距变窄了。
Active Record也是php framework Akelosmodel的一部分。
忘记XML的配置文件。Active Record配置于on-the-fly,无需建立阶段。
MySQL, PostgreSQL (7.4+),和SQLite被支持。Oracle,MSSQL和others也被支持,但是没有被校验过。
Active Record使用事务处理来保证依赖关系的删除是被自动的执行的并且你也可以自己创建自己的transaction-safe。
使用natural-language宏描述类和类之间的的关系,例如has_many和belongs_to。
加入business object管理决定他的属性的有效性。
同一个值的Manage multiple locales使用多语言列,用locale代码命名加前缀的列。
置于时间之内,容许你在他的生命周期之内截取model。
制造一个model,作为其中的任何一个list, tree,或者nested set。你也可以非常容易的定义自己的。
执行运算的快速功能像count, average, minimum, sum, maximum…