一、数据库的三大范式
第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性;
如:一张表里的地址、电话。
第二范式(2NF):满足1NF后,要求表中的所有列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情;
如:订单表只描述订单相关的信息,所以所有字段都必须与订单id相关;产品表只描述产品相关的信息,所以所有字段都必须与产品id相关;因此不能在一张表中同时出现订单信息与产品信息;
第三范式(3NF):必须先满足第二范式(2NF),要求:表中的每一列只与主键直接相关而不是间接相关,(表中的每一列只能依赖于主键);
例如:订单表中需要有客户相关信息,在分离出客户表之后,订单表中只需要有一个用户id即可,而不能有其他的客户信息。因为其他的客户信息直接关联于用户id,而不是直接与订单id直接相关。
二、mybatis的联合查询结果集处理
在实体类中的外键放入另一个实体类对象,在xml中的结果集中配置resultMap并指向resultMap标签中的id,
配置中配置id主属性,其他属性如果实体类的名称和字段的名称相同可以省略,配置association 配置属性对应实体类中的名字,列对应数据库字段,select对应配置的另一个查询映射的namespace加id。