标签:
1.数据库范式(规则):
函数依赖:x唯一确定y 则 y 函数依赖于 x
完全函数依赖:x中不能再有子集 能够唯一确定 y ;如果 x 中有子集能够唯一确定 y,则 y 部分函数依赖于 x
一.第一范式:确保每列都不可拆分,即保持原子性
二.第二范式:确保表中的每列都和主键相关,而不能只与主键的某一部分相关(联合主键)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
例子:订单与商品信息,两个实体表,一个关系表;详细参考链接文档
三.第三范式:确保每列都和主键列直接相关,而不是间接相关
四.BCNF:在关系模式中每一个决定因素都包含候选键,也就是说,只要属性A或属性组A能够决定任何一个属性B,那么A的子集中必须有候选键。
3NF和BCNF是在函数依赖的条件下对模式分解所能达到的最大程度。一个模式中的关系模式如果都属于BCNF,那么在函数依赖范围内,它已经实现了彻底的分离,已消除了插入和删除的异常。3NF的“不彻底”性表现在可能存在主属性对键的部分依赖和传递依赖。所以关系模式的设计要符合BCNF的设计。
参考:
三个范式:http://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html
BCNF:http://www.cnblogs.com/ybwang/archive/2010/06/04/1751279.html
2.从SQL查询结果到领域模型实体
3.ResultMap标签属性说明
id:resultMap标签的标识
type:返回值的全限定类名,或类型别名。
autoMapping:值范围(默认为true)。设置是否启动自动映射功能,自动映射功能就是自动查找与字段名小写同名的属性名,并调用setter方法。设置为false后,则需要在`resultMap`内明确注明映射关系才会调用对应的setter方法。
4.实体类一定要有无参数的构造方法
5.子元素说明:
id元素:用于设置主键字段与领域模型属性的映射关系
result元素:用于设置普通字段与领域模型属性的映射关系
6.constructor元素:指定使用指定参数列表的构造函数来实例化领域模型。注意:其子元素顺序必须与参数列表顺序对应
idArg子元素:标记该入参为主键
arg子元素:标记该入参为普通字段(主键使用该子元素设置也是可以的)
7.一对一关系,一对多关系 以及动态SQL
在采用嵌套结果的方式查询一对一、一对多关系时,必须要通过resultMap下的id或result标签来显式设置属性/字段映射关系,否则在查询多条记录时会仅仅返回最后一条记录的情况。
参考:
http://www.cnblogs.com/fsjohnhuang/p/4014819.html
http://www.soso.io/article/65324.html
8.动态映射关系信息 discriminator
参考:
http://www.cnblogs.com/fsjohnhuang/p/4076592.html
http://www.cnblogs.com/rollenholt/p/3365866.html
标签:
原文地址:http://www.cnblogs.com/dobestself-994395/p/4705463.html