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