范式化设计
第一范式(1NF)
1、每一列属性都是不可再分的属性值,确保每一列的原子性
2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据
3、单一属性的列为基本数据类型构成
4、设计出来的表都是简单的二维表
第二范式(2NF)
1、第二范式是在第一范式的基础上建立起来的
2、实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系
第三范式(3NF)
1、满足第三范式必须先满足第二范式
2、第三范式要求一个数据库表中不包含已在其他表中包含的非关键字信息,即数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。
反范式设计
1、为了性能和读取效率而适当的违反对数据库设计范式的要求
2.、为了查询的性能,允许存在部分(少量)冗余数据。换句话说,反范式设计就是使用空间换时间
高性能索引创建策略
① 索引列的类型尽量小,类型越小ÿ