什么是数据库设计三范式
设计数据库表的时候所依据的规范,共三个规范:
第一范式:
要求有主键,并且要求每一个字段原子性不可再分
第二范式:
要求所有非主键字段完全依赖主键,不能产生部分依赖
第三范式:
所有非主键字段和主键字段之间不能产生传递依赖
几个比较经典的设计
一对一
第一种方案:分两张表存储,共享主键
例如表:t_husband
hno(pk) | name |
---|---|
1 | 张三 |
2 | 李四 |
3 | 王五 |
表:t_wife
wno(pk) | name |
---|---|
1 | 张三 |
2 | 李四 |
3 | 王五 |
第二种方案:分两张表存储,外键唯一
一对多
分两张表存储,在"多"的一方添加外键,这个外键字段引用"一"的一方中的主键字段。
多对多
分三张表存储,以学生选课为例:在学生表中存储学生信息,在课程表中存储课程信息,在学生选课表中存储学生和课程的关系信息。
实际项目中如何使用三范式
- 数据库设计尽量遵循三范式;
- 有时需要根据实际情况进行取舍;
- 有时可能会拿冗余换速度;
- 最终目的要满足客户需求。