第一范式
- 任何一张表都应该有主键,并且每一个字段原子性不可再分。
- 关于第一范式,每一行必须唯一,也就是每个表必须有主键,这是我们数据库设计的最基本要求。
第二范式
- 第二范式是建立在第一范式基础上的,另外要求所有非主键字段完全依赖主键,不能产生部分依赖。
第三范式
- 建立在第二范式基础上的,非主键字段不能传递依赖于主键字段。(不要产生传递依赖)。
三范式总结
- 第一范式:有主键,具有原子性,字段不可分割
- 第二范式:完全依赖,没有部分依赖
- 第三范式:没有传递依赖
- 数据库设计尽量遵循三范式,但是还是根据实际情况进行取舍,有时可能会拿冗余换速度,最终用目的要满足客户需求。
一对一设计,有两种设计方案:
- 第一种设计方案:主键共享
- 第二种设计方案:外键唯一