跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 主動記錄 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
主動記錄
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
佇咧軟體工程內底,'''主動記錄模式'''(active record pattern)是一種模式,可見佇咧關聯式資料庫當中儲存記持體中物件的軟體當中。伊佇咧 Martin Fowler 的二空空三年就著《企業應用架構的模式》冊中號名。符合這个模式的物件的介面將包括函式譬如講插入去、閣較新佮刪除,加上直接對應該佇底層的資料庫表格中列的抑是濟抑是少的屬性。 主動記錄模式是存取佇資料庫中的資料的一種方式。資料庫表抑是視圖予包裝入類。所以,物件實例予人連結到這个表格的一个單一行。佇咧一个物件建立了後,阮的儲存的時陣會有一个新的行增加到表格內底。載入的任何物件攏對資料庫得著伊的資訊。佇一个物件予人更新的時陣,佇表格中對應的行嘛是予人更新。包裝類做佇表格抑是視圖內底的逐个列攏實現存取器方法抑是屬性。 這个模式定定用佇物件維持久化這个工具佮物件關係對映(ORM)之中。典型的,外來鍵聯絡嘛通過一个屬性啊若予顯露做適當的一个物件實例。 ==實現== 這个概念的實現會當佇濟濟編程環境中的各種框殼內底揣著。比如講,若是佇資料庫內底有一个表格 ` parts `,伊有列 ` name `(字串類型)和 ` price `(數值類型), 主動記錄模式用類 ` Part ` 來實現,偽碼為: ` ` ` part=new Part ( ) part . name=" Sample part " part . price=一百二十三分四五 part . save ( ) ` ` ` 伊佇咧 ` parts ` 表格中建立有予定值的一个新行,並且粗略的等價數 SQL 命令: 顛倒反,這个類會當予人用來查詢這个資料庫: ` ` ` b=Part . find _ first ( " name " , " gearbox " ) ` ` ` 這會揣著一个新 ` Part ` 東西,是因為佇咧 ` parts ` 格中其實 ` name ` 列的值為 ` " gearbox " ` 的第一个匹配行。使用的 SQL 命令可能類似下跤所列,具體依賴佇這个資料庫的 SQL 實現細節: ==主動的記錄框殼== 主動記錄框架一般兼有 ORM 框架的功能,但主動記錄毋是簡單的 ORM。關係型資料庫往往過通過外來鍵來表示實體的聯絡,主動記錄佇資料來源層面上嘛共這款聯絡對映為物件的關聯佮聚集。出名的例是解決方案疊起來 Web 開發框殼 Ruby on Rails,其預設使用一个純 Ruby 寫做主動的記錄框殼來驅動 MVC 中的模型層。此外閣有: * SQLObject,Python * Orator,Python * Yii Framework ActiveRecord,PHP * Castle ActiveRecord,. NET * ActiveJDBC,Java * ObjectiveSql,Java * JFinal,Java ==類似模式== 主動記錄佮行資料門徑十分相𫝛,但是進前的人是領域模型的模式,後者只是一種資料來源模式。主動記錄適合非常簡單的領域需求,尤其佇咧領域模型佮資料庫模型誠相𫝛的情況下。若拄著閣較複雜的領域模型結構(譬如講用著繼承、策略的領域模型), 往往需要使用分離資料來源的領域模型,結合資料對映器使用。 ==資料來源== ==外部連結== * Martin Fowler 著 Active Record 的定義 [[分類: 待校正]]
返回到「
主動記錄
」。