数据库设计三大范式
何为范式?
1、设计关系型数据库的时候,需要遵从不同的规范要求,设计出合理的关系型数据库。这些规范被称作范式。
2、范式越高,数据库冗余度就越低。
理解三大范式:
<div align="center">第一范式:
1、数据库表的每一列都是不可分割的原子数据项,不可分
例子:
(1)、当address为记录省市的时候需进行拆分,拆出provice,city
第二范式:
1、第二范式是在第一范式的基础上建立起来的
2、非主键属性完全依赖于主键
3、非主键字段不能相互依赖,每一行数据都只做一件事
例子:
(1)、当一个人同时下多条订单的时候
(2)、订单表只可描述订单相关的信息,所有字段都必须与orderId相关
(3)、用户表只可描述用户相关的信息,所有字段都必须与userId相关
(4)、因此不能在同一张表中出现订单信息和用户信息
(5)、进行如下拆分
第三范式:
1、第三范式是在第二范式的基础上建立起来的
2、属性不能依赖于其它非主键属性
理解:
在第二范式(已经分成多张表)的基础上,要求一张表中只能有另一张表的ID(主键),而不能有其他的任何信息。