7.Active Record
来源:互联网 发布:mac哑光修容粉怎么选 编辑:程序博客网 时间:2024/05/21 08:40
Active Record(中文名:活动记录)是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。Active Record 和 Row Gateway (行记录入口)十分相似,但前者是领域模型,后者是一种数据源模式。关系型数据库往往通过外键来表述实体关系,Active Record 在数据源层面上也将这种关系映射为对象的关联和聚集。
Active Record 适合非常简单的领域需求,尤其在领域模型和数据库模型十分相似的情况下。如果遇到更加复杂的领域模型结构(例如用到继承、策略的领域模型),往往需要使用分离数据源的领域模型,结合 Data Mapper (数据映射器)使用。
Active Record 驱动框架一般兼有 ORM 框架的功能,但 Active Record 不是简单的 ORM,正如和 Row Gateway 的区别。著名的例子是全栈(Full Stack) Web 开发框架 Ruby on Rails ,其默认使用一个纯 Ruby 写成的 Active Record 框架来驱动 MVC 中的模型层。
ActiveRecord也属于ORM层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。
ActiveRecord的主要思想是:
1. 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;2. ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;;3. ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;
ActiveRecord比较适用于:
1. 业务逻辑比较简单,当你的类基本上和数据库中的表一一对应时, ActiveRecord是非常方便的,即你的业务逻辑大多数是对单表操作;2. 当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script),把跨表事务提升到事务脚本中;3. ActiveRecord最大优点是简单, 直观。 一个类就包括了数据访问和业务逻辑. 如果配合代码生成器使用就更方便了;这些优点使ActiveRecord特别适合WEB快速开发。
ActiveRecord不适合于:
1. ActiveRecord虽然有业务逻辑, 但基本上都是基于单表的. 跨表逻辑一般会放到当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script)中. 如果对象间的关联越来越多, 你的事务脚本越来越庞大, 重复的代码越来越多, 你就要考虑Domain Model + O/R Mapper了;2. ActiveRecord保存了数据, 使它有时候看上去像数据传输对象(DTO). 但是ActiveRecord有数据库访问能力, 不要把它当DTO用. 尤其在跨越进程边界调用的时候, 不能传递ActiveRecord对象。
0 0
- 7.Active Record
- Active Record
- Active Record
- Active Record simple query
- Active Record Query
- ADOdb Active Record
- Active Record Basics
- 关系型 Active Record
- rails active record associations
- rails active record querying
- 关系型 Active Record
- Active Record介绍
- Active Record介绍
- Active Record 初解
- Active Record Validations Helpers
- yii 数据库 Active Record
- Active Record 活动记录
- Active Record 基础
- viewpager左右滑动的 +Tab指示(方式2-------------ViewPager+Fragment+actionbar)
- JVM Specification(JVM规范)对JVM内存的描述
- Linux source command & bashrc/ profile
- C++ Builder 静态编译设置
- Android HTTPS认证
- 7.Active Record
- 【转】HTTP 头部解释
- 正则表达式
- Dalvik与ART相关源代码分析
- Update Bits
- spring提供的三种定时任务
- vs2012配置ffmpeg
- 居于H5的多文件、大文件、多线程上传解决方案
- CAS 单点登录实战 (2) 服务器端