没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
3页
O/R Mapping中对象关系映射解决方案汇总 <br>对于一个ORM方案时,为了提供用户对具体映射方案的细颗粒度的控制的可能,特别对于企业级应用,应该是用户选择是否使用该产品比较重要的因素之一,需要尽可能多的实现各种可选的常用映射方案,本文的目的就是对O/R Mapping中对象关系映射方面的解决方案作一个汇总,当设计或评价一个ORM方案的时候,也可以相应的以此作为参考。 <br>
资源推荐
资源详情
资源评论
O/R Mapping 中对象关系映射解决方案汇总
对于一个 ORM 方案时,为了提供用户对具体映射方案的细颗粒度的控制的可能,特别对
于企业级应用,应该是用户选择是否使用该产品比较重要的因素之一,需要尽可能多的实
现各种可选的常用映射方案,本文的目的就是对 O/R Mapping 中对象关系映射方面的解决
方案作一个汇总,当设计或评价一个 ORM 方案的时候,也可以相应的以此作为参考。
1、 继承
说明:
对于比较完善的继承关系一般会有如下共有特点:首先,只允许一个非接口类型的父类
(虽然有的程序语言支持从多个这样的父类继承,但一般不被推荐),同时允许多个接口
类型的父类;其次,父类有可能为抽象类(即不能实例化,而只能被继承)。
方案:
一般,既然接口或抽象类不能被实例化,自然也不需持久化,因此,映射中只需考虑能够
实例化,也即能够持久化的实体类,对于这些实体类,具体的常用映射方案有三:
1) 每个继承体系用一张表存储,该表包含整个继承体系中所有类的属性集合,并且每行
包含一个额外的、用以识别该行代表的被持久化的实体类类型的列;
2) 每个实体类映射到一张表,并且,每个子类对应的表重复包含其所有层级的父类的属
性,属于一个继承体系中的每张表包含相同的主键值以表示同一实例,并且此时,你有两
种选择:一、当向子类对应的表插入一条记录的同时,需要向其所有层级的父类插入记录
以维持该继承语意,这样当取子类数据时,不需链接其父类对应的表,二、当向子类对应
的表插入一条记录的同时,不向其所有层级的父类插入记录,但是,在取一个类的数据时
需要链接其所有的子类对应的表,以取得所有语意上属于该类型的数据,一般,对于可以
选择用一个专用的继承关系查询表来存储所有的继承关系;
3) 每个实体类映射到一张表,但是,每个子类对应的表不重复包含其所有层级的父类的
属性,而是,只保证属于一个继承体系中的每张表包含相同的主键值以表示同一实例,这
时,子类的主键,同时也是对应到其父类的表的外键,当需要取得子类数据时,需要链接
其所有层级的父类对应的表,好处是可以减少方案二中的数据或表结构的冗余,但是,此
时,需要在取子类数据时链接子类的所有父类对应的表,一般,可以选择用一个专用的继
承关系查询表来存储所有的继承关系。
2、 一对一关联、一对多关联(包含一对一和一对多的自关联)
说明:
所谓一对一关联,实际上还可以分为三种情形,即 0..1 - 1,1 – 1,1 – 0..1 三种情形;而一
资源评论
- percy19822012-12-07类似于手册的资料,实用性一般
WudGaby
- 粉丝: 1
- 资源: 46
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功