对象关系映射中类的继承映射
与实现
对象关系映射中类的继承映射分析与实现
,, ,兰伟万权性
,,,,,重庆科创职业学院 信息工程学院重庆 九江职业大学 信息工程学院江西 九江 ,,,:,,,:,,,,,:::, 摘 要,,针对软件开发人员经常面对如何实现类的继承映射研究了实现类的继承映射的几种实现
重点分析每
,。 。种方法的优缺点并给出如何使用的几点建议解决软件开发过程中存在继承关系的对象持久化问
,,,关键词继承类的继承映射对象持久化
,,,,,中图分类号 文献标识码 文章编号 ,,,,,,,,,,,,,,,::,:,,:,::,,:,,,,
,量子类的属性和从父类继承的属性分别映射成表的字 ?
。 ,段具 体 映 射 如 图 每一个映射表增加一个主键 字 段什么是类的继承映射, ? ,
。所示
,继承是指一个对象直接使用另一对象的属性和方法
,是面向对象程序设计在面向对象设计中得 大特点之一,
。 ,,到广泛应用然而关系数据库不能直接支持继承无 法
,直接描述类之间的继承关系所以当需要对多个存在继承
,关系的对象 进 行 持 久 化 时需要设计者去完成相关的映 ,。射即类的继承映射 所有的类映射到一张表图 ,
类的继承映射实现方法,
,,通常有分 别 是种方法实现类的继承映射所 有 , ?
,,的类映射成一张表每 个 子类映射成一张表每 个 类 ? ?
。 ,映射成一张表这以 下 是 对 这种实现方 法 各 有 特 点, , 。种实现方法的分析 每个子类映射成一张表图 ,,。 在分析前我们假设存在一个简单的类继承关系如 每个类映射成一张表 ,,,,图所示, ,映射步骤是根据类的个数确定 需要映射表的数 ?
,,量每个类的属性分 别 映 射 成 表 的 字 段每 个 映 射 表 ? ?
,增加一个主键字段将子类映射表的主键字段同时也设 ?
,。为外键通过外键来描述子类与父类的继承关系
。 具体映射如图所示,
三种实现方法的对比 ,
图 一个简单类继承关系,
所有的类映射到一张表, 我们知道如何用根据上面的分析种方法实现将类 ,,, ,
,,继承关系映射到关系数据库中接下来我们分析这种实 映射步骤是把所有的类的属性 映射成为表的字 , ?
,,。段现方法的特点 为映射表添加一 个 主 健 字 段为映射表添加一个 ? ?
。 。类型字段用于区分子类的类型具体映射如图所示 , 所有的类映射到一张表的特点 ,,,
每个子类映射成一张表,,,优点只需 映射方法简单当需要增加新的类时 ,,,? ? ,映射步骤是根据子类的个数确定需要映射表的数 ? ,要通过在表中增加相应的字段就能轻松的实现因为所 ?
,,,,,、,,,作者简介兰伟男重庆荣昌人硕士重庆科创职业学院信息工程学院讲师研 究 方 向 为教学研究与应用高 职 教 育 ,,,,,,,,,、,,,,,,,。改革高职师资队伍建设万权性男江西九江人九江职业大学信息工程学院助教研究方向为计算机应用 ,,,,,
软 件 导 刊? ?年 ,:,, ,,
,,,,,,有的数据都在一个表 中所 以 查 寻 效 率 高表的修改量小存 储 效 率 高通 过 类 型 字改变时数 据 冗 余 少很 ? ? ?
。。容易实现多态段可以很好支持多态 ,,缺点映射表的数 量 较 多因为通常需要同时访 ? ?
,,,问多个表查询效率低正确 因为通常需要访问多个表?
。输写 语句比较困难,,,
结束语 ,
,,经过上述分析可知具 体 种实现方法各有优缺点,
。 选用哪种方法要设 计 者 根 据设计的需要灵活选择下 面 ,,是笔者给出的选择建 议继 当继承类的数量不是很多 ? 图 每个类映射成一张表,
,承关系不是很复杂时可以选择所有的类映射到一张表的 ,,,缺点其中一个类发生变化所有类映射在一张表 ? ,方法实现类的 继 承 映 射当继承类之间类型比较固定 ? ,,会影响表中的所有记 录偶 合 性 高所有类映射在一张 ? ,,时即对象的角色不会 经 常 重 叠可以选择每个子类映射 ,,,表表中必然存在大量冗余数据存储空间浪费大当类 ? ,成一张表的方法实现类的继承映射当继承类之间类型 ? ,。的继承关系很复杂时表的记录数会变的很庞大
,,经常发生变化或需要 经 常 使 用 多 态 时可以选择每个类 每个子类映射成一张表的特点 ,,,。映射成一张表的方法实现类的继承映射 ,。优点可以高效访问单个对象上的数据
,, ,缺点除了要修改父类映射的表外当修改父类时? 参考文献,,,还需要修改子类映射 的 表很 当对象拥有多少角色时? ,,,,,易燕对象关系映射框架的研究与实现电脑知识与技 术 ,,,,,::,,,难保持数据的完整性例 如 表中很难描述既是员工又 是 ,,,,, 。顾客的对象 ,, ,麻淑芳闫占 强对象关系模 型在综合测试系 统 中的 映 射与 研究 ,,
,,,,,计算机光盘软件与应用,,,,, ,:,: 每个类映射成一张表的特点 ,,,,,,责任编辑周晓辉 ,,,优 点映射表相对简单容易理解当父类或子类 ? ?
,;,,,,,,;,;,,:,:,~;,:,,,;,,,,,,,,,,,,,,,,,, ,,,,,,
:,:,;:,,;,,,,:,,,,,,,,,,,,
,, ,,,,,,:,~,,;,~,;,~;,;,;,;,,;;~:,,:~;,~;,,:;,,::,,,;,~;,;,,,,;,~;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,!
,;,,,,,,;,,,,,,,,,,,,,,;,:,;,:~,;,~:,,,,,,;,,:,;,~,,:,,:,~:,,:~,;,,:,,,:,:,,;,:,,,,,;,;,;,:, ,,,,,,
,,,;,::;,,;,,~;:,;:;,,;,:,;,,:,~;,,:;;,:,,~, ,;:,,,~;,,:;,~;,,:; ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,! ,,
,,:,:,,,,;,:,;:,,;,,,,,;,, ,,