MySQL数据库设计的三范式

设计范式概述

  • 设计范式是设计表的依据,按照这三个范式设计的表不会出现数据冗余
  • 数据库设计尽量遵循三范式,但在实际的开发中,以满足客户需求为主,有的时候会拿冗余换执行速度

一、第一范式

  • 数据库表中不能出现重复记录,每个字段是原子性的不能再分
  • 第一范式每个表必须有主键,通常采用数值型或定长字符串表示,而列不可再分应视具体情况决定
  • 有主键,记录不重复,字段具有原子性

二、第二范式

  • 第二范式是建立在第一范式基础上的,另外要求所有非主键字段完全依赖主键,不能产生部分依赖
  • 完全依赖,没有部分依赖
  • 多对多的设计:关系表有两个外键

三、第三范式

  • 建立在第二范式的基础上,所有非主键字段直接依赖主键,不能产生传递依赖
  • 没有传递依赖
  • 一对多的设计:两张表,多的表加外键

四、设计方案

1. 一对一

1. 主键共享
2. 外键唯一

2. 一对多

  • 两张表,多的表加外键

3. 多对多

  • 关系表有两个外键

猜你喜欢

转载自blog.csdn.net/LvJzzZ/article/details/109014024