我正在修改CodeIgniter,并且首次遇到了Active Records.起初我把它当作一些不太懂得写sql的人的东西.我现在意识到我的分析是有缺陷的,而Active Records是非常突出的,尤其是在Rails中.
但是Active Record持有什么目的?是从不同的RDBMS个性抽象出来的.如果是这样,我认为这不是sql的意思.此外,最好的做法是什么?
提前致谢
“活动记录模式”正在成为大多数编程框架的核心部分.它使得更简单的CRUD(创建,更新,读取,删除)任务更快地实现.例如,不必编写许多sql来插入,更新和删除许多常见和简单的数据对象,它允许您简单地将值分配给数据对象并运行命令,例如. $object-> save(),sql为您编译并执行.
大多数框架还在其各自的Active Record模型中实现数据关系,可以大大简化访问与您的对象相关的数据.例如,在CodeIgniter中,如果您指定了一个类别“有很多”产品,那么在从数据库中加载Category对象后,可以使用简单的代码行列出它的子产品.
foreach ($category->products as $product) { echo $product->name; }
Active Record的另一个优点就是如您所说,它使您的代码轻松移植到不同的数据库平台(只要您使用的框架具有所选数据库的驱动程序),尽管这似乎不是很重要现在,如果您的应用程序变得流行,我以后有更大的价值!
希望这将有所帮助.维基百科描述活动记录(http://en.wikipedia.org/wiki/Active_record_pattern),CodeIgniter文档将会同时进行.就个人而言,我使用的是KohanaPHP(http://www.kohanaphp.com),它是CodeIgniter的PHP5专用叉,我发现它的ORM模型非常有用!