O/R Mapping中的三种继承方式~
通常的O/R Mapping的类和表之间的继承关系有下面的3种选择:
1、单表继承
2、具体表继承
3、类表继承
单表继承指为一个层次中的所有类建立一个表,如图:
具体表继承指为每个具体类建立一个表,如图
类表继承指为这个层次中每一个类建立一个表,如图
我们在数据结构复制和访问速度之间必须进行权衡,以决定我们方式.
类表继承是最简单的方式,但是它需要多个连接操作来载入一个对象,通常会损失性能,具体表继承避免了连接,但是扩展性不强,变更起来比较困难,缺乏超类表会影响引用完整性,而单表继承的最大弊端是浪费空间,它的好处是内容都在一起,修改非常容易且避免了连接操作.
这三种继承方式各有特点,关键在于使用的环境和偏好,以前我更多的倾向于使用类表继承,受Martin的影响,现在正尝试使用单表继承,感觉它比较容易实现,且易于重构,加上目前很多数据库都能很好的压缩浪费的表空间,单表继承的确是企业应用开发的一个不错选择~