一、概要
前面我们讲的基本都是单表查询,但在我们的实际开发中,我们可能会碰到一些比较复杂的查询,
级联关系是一个数据库实体的概念,有 3 种级联关系,分别是一对一级联、一对多级联以及多对多级联
级联的优点是获取关联数据十分方便,但是级联过多会增加数据库系统的复杂度,同时降低系统的性能。
在实际开发中要根据实际情况判断是否需要使用级联。更新和删除的级联关系很简单,由数据库内在机制即可完成。
二、名词解释
- 关系:事物之间相互作用、相互联系的状态。
- 关联:名词:表示对象(数据库表)之间的关系;动词:将对象(数据库表)之间通过某种方式联系起来。
- 映射:将一种形式转化为另一种形式,包括关系。
- 级联:有关系的双方中操作一方,另一方也将采取一些动作
- 值类型:对象不具备数据库同一性,属于一个实体实例其持久化状态被嵌入到所拥有的实体的表行中,没有标识符。
- 实体类型:具有数据库标识符。
三、映射关系
一对一
主键关联:
不必加额外的字段,只是主表和辅表的主键相关联,即这两个主键的值是一样的。
外键关联:辅表有一个额外的字段和主表相关联,或者两个表都有额外的字段与对应表的相关联。
一对多
多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一
一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多
多对多
在操作和性能方面都不太理想,所以多对多的映射使用较少,实际使用中最好转换成一对多的对象模型;需要创建中间关联表,转换成两个一对多