**什么是数据库三大范式**
1. 每一列都是不可分割的原子数据项
2. 实体的属性完全依赖于主关键字
3. 任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)
**数据库中设计中的常见问题**
1. 字段混在了一起
> ![](https://box.kancloud.cn/6a34335f77723f818ac576a25b7b8258_743x157.jpg)
![](https://box.kancloud.cn/831d7470be3e01aa6f22ab866803b6b5_881x136.jpg)
2. 数据表混在了一起
>![](https://box.kancloud.cn/05618151a1bcd4fa00c0e7339f593d14_661x349.jpg)
3. 不会处理表关系
> *一对一 (学生姓名, 学号)*
> *一对多 (老师, 学生)*
> *多对多 (学生, 课程)*
**设计数据库的小技巧**
1. 一个对象, 一张表
2. 一张表, 一个主键
3. 表名中有`数据库名`做前缀
4. 字段名中有`表名`做前缀
5. 前缀后加`缩写`
6. 数据表关系处理
**范式越高越好?**
`新建数据库指定编码与排序规则`
```
create database `test2` default character set utf8 collate utf8_general_ci
```