Hibernate实战学习(一章)

范式不匹配:

1.粒度问题  

关系型数据库对UDT(自定义对象) 支持度不高,并且产品间几乎不兼容。

2.子类型问题

SQL数据库目前还缺乏一种表示多态关联的明显方式,一个外键约束会准确的引用一张目标表;但定义一个引用多张表的外键并不简单,你必须编写一个程序性约束强制实现这类完整性规则。

3.标识问题

数据库中如果找不到一个好的自然主键,则使用代理键(目前自己的项目全部使用代理键),代理键对程序通常没有任何意义,一般也不会呈现给用户,其存在的唯一目的就是识别应用程序内部的数据。

3.与关联相关的问题

在java中 想要关联对象 ,比较容易,无论单项双向关联,只需相互定义关联,在关系数据库中,有了外键甚至中间表就可以查询出来。

4.数据导航的问题

JAVA中   user.get.... .get.... 就可以了, 但是sql 需要先确定要访问对象网络的那一部分,否则一不小心就会检索数据太多浪费内存。这就是令人担心的N+1查询方式。

猜你喜欢

转载自my.oschina.net/u/3018126/blog/1816137