- 把对象映射到关系数据库
首先,类的属性将会映射成关系数据库中的0列或多列(最好使用相似的命名规范)。
对象的有些属性本身就是对象,它真实地反映了两个类之间的关联。
并非所有的属性都是持久的,有一些被用来进行临时计算。
- 影子信息
影子信息(shadow information)是除了普通领域数据之外,对象需要维护的任何用于将它们自己持久化的数据。
一般如主键信息,特别是没有业务含义的代理主键。并发控制标记、时间戳、增量计数器。
- 映射继承结构
将继承映射进关系数据库中,有3种主要的方法:
- 把整个类层次映射到单张表中。
- 把每个具体类映射成自己的表。
- 把每个类映射成自己的表。
3种技术的对比
技术 | 优点 | 缺点 |
单表 |
|
|
每个具体类一张表 |
|
|
每个类一张表 |
|
|
- 映射关系
对象模式中的关系是通过对象引用和操作的组合来实现的。而在RDB中,他们通过外键来维护。
映射关系的方式依赖于他的多重性:
- 一对一关系
如果每个类都有一张表对应,那么这两张表之一需要实现一个外键。
第二种策略是简单的在单张表中存储两个类的数据。
- 一对多关系
它的实现方式是在关系中多的那方面使用Hashset等集合,在一的这方面使用对象引用。
在数据库中,他是在关系中多的一方通过外键来实现。
- 多对多关系
两个类之间的多对多的关系被映射成数据库内的关联表。
- 迭代关系
也称为自反关系,它是指关系的两侧都是相同的实体。
我们可以使用非迭代关系相同的方式来映射它们。