美文网首页
Mysql性能优化-2.范式

Mysql性能优化-2.范式

作者: 笨鸡 | 来源:发表于2019-05-10 22:14 被阅读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.总结

    满足第三范式
    • 独立数据独立建表
    • 表中存在与业务逻辑无关的ID主键
    • 表之间的关系由关联字段(关联表)进行表示
    优势
    • 减少数据冗余
    • 易于维护更新

    相关文章

      网友评论

          本文标题:Mysql性能优化-2.范式

          本文链接:https://www.haomeiwen.com/subject/hovzoqtx.html