数据库三大范式
- 数据库在是设计时对数据库春初性能,还有开发人员对数据的操作都有很大关系,建立科学数据库需要满足一些规范来优化数据存储方式,在关系型数据库总规范叫做范式
第一范式 1NF 原子性 不可以再分割
用户id 用户名 密码 姓名 联系方式
001 test 123456 张三 13888888888家庭住址:
不符合第一范式 因为 可以将联系方式 继续拆分 直到不能再错拆分为止
用户id 用户名 密码
用户信息
姓名 性别 电话 邮箱 家庭住址
第二范式 首先满足第一范式
在满足第一范式的基础上 消除 部分依赖 也就是说 主键之外的字段 要跟主键 完全相关联
每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。
第三范式 首先满足第二范式
没个属性都跟主键有直接关系而不是间接关系
| 商品id | 商品名称 | 价格 | 描述 | 重量 |有效期 |
|–|--|
| 1 | 雷碧 |2.5| | 250ml | 2018-1020|
| 分类id | 分类名称 | 分类描述|
|–|--|
| 1 | 酒水 | 碳酸饮料 |
分类id | 商品id |
---|---|
1 | 1 |
遵循三范式基础上 可以进行适当的反范式设计 为了提高查询速度
范式好处 :
1.方便维护
缺点:
1.查询需要多表联合查询
反范式的好处:
1.查询速度快
缺点:
2.维护成本高
一对一: 学生姓名和学号
一对多: 老师和学生
一个老师表
一个学生表
少的id 写到多的后面
多对多: 学生和课程
设计数据库的技巧:
1.一个对象一张表
2.一张表 一个主键
3.表名 可以以库名作为前缀
4.字段名可以 以表名作为前缀
5.前缀后面 可以是缩写
、