数据库设计三范式
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。
在关系型数据库中这种规则叫做范式。
范式一
确保每列保持原子性;数据库表中的所有字段都是不可分解的原子性;
例如:某表中有一个地址字段,如果经常需要访问地址字段中的城市属性,则需要将该字段拆分为多个字段,省份、城市、详细地址。
省份、城市、详细地址——有原子性
省份城市详细地址————无原子性
范式二
确保表中的每列都与主键相关,而不能只与主键的某一部分相关(组合索引)
// 不满足相关性会造成数据冗余,不方便管理(这是为了对语法进行优化)
原表:
拆分为:
范式三
确保每列都与主键相关,而不是间接相关;减小数据冗余;
反范式
由于按照三范式的原则数据联表较多,降低了查找的性能,所以也有通过反范式的处理优化整个查询过程。