ActiveRecord 也屬于 ORM 層,由 Rails 最早提出,遵循標(biāo)準(zhǔn)的 ORM 模型:表映射到記錄,記錄映射到對(duì)象,字段映射到對(duì)象屬性。配合遵循的命名和配置慣例,能夠很大程度的快速實(shí)現(xiàn)模型的操作,而且簡(jiǎn)潔易懂。
ActiveRecord 的主要思想是:
1. 每一個(gè)數(shù)據(jù)庫(kù)表對(duì)應(yīng)創(chuàng)建一個(gè)類(lèi),類(lèi)的每一個(gè)對(duì)象實(shí)例對(duì)應(yīng)于數(shù)據(jù)庫(kù)中表的一行記錄;通常表的每個(gè)字段在類(lèi)中都有相應(yīng)的 Field ;
2. ActiveRecord 同時(shí)負(fù)責(zé)把自己持久化,在 ActiveRecord 中封裝了對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn),即 CURD; ;
3. ActiveRecord 是一種領(lǐng)域模型 (Domain Model) ,封裝了部分業(yè)務(wù)邏輯;
ActiveRecord 比較適用于:
1. 業(yè)務(wù)邏輯比較簡(jiǎn)單,當(dāng)你的類(lèi)基本上和數(shù)據(jù)庫(kù)中的表一一對(duì)應(yīng)時(shí) , ActiveRecord 是非常方便的,即你的業(yè)務(wù)邏輯大多數(shù)是對(duì)單表操作;
2. 當(dāng)發(fā)生跨表的操作時(shí) , 往往會(huì)配合使用事務(wù)腳本 (Transaction Script) ,把跨表事務(wù)提升到事務(wù)腳本中;
3. ActiveRecord 最大優(yōu)點(diǎn)是簡(jiǎn)單 , 直觀。 一個(gè)類(lèi)就包括了數(shù)據(jù)訪(fǎng)問(wèn)和業(yè)務(wù)邏輯 . 如果配合代碼生成器使用就更方便了;
這些優(yōu)點(diǎn)使 ActiveRecord 特別適合 WEB 快速開(kāi)發(fā)。