一、概念部分
1.1关联关系:是使用最多的一种关系,非常重要。在内存中反映为实体间的关系,映射到DB中为主外键关系。实体间的关联,即对外键的维护。关联关系的发生,即对外键数据的改变。
1.2外键:外面的主键,即使用其它表的主键值作为自己的某字段的取值。
在一个对关联关系中,外键总是被定义在多方表中。例如,国家Country与城市City间的关系就属于一对多关联关系,外键字段一般情况下是被定义在City表中的。
二、外键是建立在多方表还是单方表
外键肯定要建在多方表、如果建在单方表会出现数据的大量冗余。外键由多方表来维护。
三、关联关系的三种形式
1对1 1对多 多对多
四、关联属性
五、关联方向
5.1单相关联
指具有关联关系的实体对象间的加载与访问关系是单向的。即,只有一个实体对象可以加载和访问对方,但对方不能访问另一方的。
5.2双向关联
指具有关联关系的实体对象间的加载与访问关系是双向的。即,任何一个放均可加载和访问另一方。这里的访问是setter/getter
六、关联关系的维护
6.1java代码上的关联关系的维护
a.set(b)a在维护反之 b.set(a)则b在维护 谁主动去关联谁去维护这个关系
如果session.save()保存的是1方对象,那么维护关联关系的sql语句是update语句。如果session.save()保存的是多方对象,那么维护关联关系的sql语句是insert语句。
谁在维护关联关系session.save()谁可以保证不会出错。
6.2数据库的关联关系的维护
数据库上关联关系的维护本质上就是对外键的维护。