Mysql性能优化-2.范式

2019-05-10  本文已影响0人  笨鸡

1.第一范式

第一范式: 1NF 只要是关系型数据库,默认满足第一范式
错误案例一:

t_teacher
id 授课时间
1 20190510,20190530
2 20190508,20190529
3 20190509,20190528

改善表为

t_teacher
id 授课开始时间 授课结束时间
1 20190510 20190530
2 20190508 20190529
3 20190509 20190528

错误案例二:

t_article
id summary tag_id
1 Mysql性能优化 1,2,3,4,5,6

改善表为 article, tag

t_article
id summary
1 Mysql性能优化
t_tag
id article_id
1 1
2 1
3 1
4 1
5 1

2.第二范式

2NF 消除对主键部分依赖
主键:可以唯一标识记录的字段或者字段集合。

t_class
老师 性别 班级 教室 开始 结束
孔子 Mysql01 J308 19:00 21:00
李清照 诗词 W2011 10:00 12:00
孔子 Mysql02 J307 14:00 16:00

通过老师和班级组成复合主键,然而性别对老师有依赖,也就是性别、教室都与主键有部分依赖
改善方案:

t_class
id 老师 性别 班级 教室 开始 结束
1 孔子 Mysql01 J308 19:00 21:00
2 李清照 诗词 W2011 10:00 12:00
3 孔子 Mysql02 J307 14:00 16:00

3.第三范式

3NF 消除对主键的传递依赖

t_class
id teacher_id 班级 教室 开始 结束
1 1 Mysql01 J308 19:00 21:00
2 2 诗词 W2011 10:00 12:00
3 1 Mysql02 J307 14:00 16:00
t_teacher
id 姓名 性别
1 孔子
2 李清照

4.总结

满足第三范式
优势
上一篇下一篇

猜你喜欢

热点阅读