数据库设计之三范式的的理解
目的:
为了降低数据冗余,消除数据插入异常、更新异常、删除异常。在设计数据库时范式要求越严谨则设计出来的表则越多数据结构越灵活。
定义:
第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性;
第二范式(2NF):满足1NF后,要求表中的所有列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情;
例如:订单表只描述订单相关的信息,所以所有字段都必须与订单id相关产品表只描述产品相关的信息,所以所有字段都必须与产品id相 关;因此不能在一张表中同时出现订单信息与产品信息;
第三范式(3NF):必须先满足第二范式(2NF),要求:表中的每一列只与主键直接相关而不是间接相关,(表中的每一列只能依赖于主键);
例如:订单表中需要有客户相关信息,在分离出客户表之后,订单表中只需要有一个用户id即可,而不能有其他的客户信息。因为其他的客户信息直接关联于用户id,而不是直接与订单id直接相关。
如何更好的区分三范式:
第一范式和第二范式在于有没有分出两张表,第二范式是说一张表中包含了所有不同的实体属性,那么必须要分成多张表, 第三范式是要求已经分成了多张表,那么一张表中只能有另一张表中的id(主键),而不能有其他的任何信息(其他的信息一律用主键在另一表查询)。
相关推荐
xiaoxiangyu 2020-06-28
CharlesYooSky 2020-01-07
chenjiazhu 2020-01-03
happinessaflower 2019-12-23
景泽元的编程 2019-10-24
点滴技术生活 2019-10-20
lwh0 2015-04-21
happinessaflower 2019-12-05
点滴技术生活 2019-11-08
mchaojie 2019-10-29
gaozhennan 2020-08-16
chenjiazhu 2020-07-08
helencoder 2020-06-26
踩风火轮的乌龟 2020-06-02
nan00zzu 2020-05-17
xwb 2020-05-16