常用三大范式:
第一范式(1NF):原子性,所有的列都是不可拆分的
| 姓名 | 年龄 | 学院班级 | 家庭信息 |
| lin | 18 | 信息学院,互联网 | 广州,4口人 |
这是不满足第一范式的
| 姓名 | 年龄 | 学院 | 班级 | 家庭地址 | 家庭人口 |
| lin | 18 | 信息学院 | 互联网 | 广州 | 4 |
第二范式:满足第一范式,与主键无关联(每张表只做自己的事)
| 订单号 | 产品号 | 产品数量 | 产品价格 | 订单时间 | 订单金额 |
| 10032 | 103 | 100 | 199.00 | 2021.11.01 | 50000 |
| 10032 | 102 | 100 | 99.90 | 2021.11.01 | 50000 |
| 10034 | 103 | 50 | 400 | 2020.02.03 | 40000 |
这里的订单和产品只有主键关联,这里应该是两个表(一个订单可以有多个产品,一个产品可以参与在多个订单)
| 订单号 | 产品号 | 产品数量 | 产品价格 |
| 10032 | 103 | 100 | 199.00 |
| 10032 | 102 | 100 | 99.90 |
| 10034 | 103 | 50 | 400 |
| 订单号 | 订单时间 | 订单金额 |
| 10032 | 2021.11.01 | 50000 |
| 10032 | 2021.11.01 | 50000 |
| 10034 | 2020.02.03 | 40000 |
第三范式:满足第三范式,任何非主键不得关联非主键
| 姓名 | 年龄 | 专业 | 学院 | 学院主任 |
| lin | 22 | 电子 | 信息 | 龙老师 |
| li | 21 | 物联网 | 信息 | 丽老师 |
| ko | 22 | 会计 | 运管 | 赖老师 |
这里的专业和学院关联
| 姓名 | 年龄 | 专业 |
| lin | 22 | 电子 |
| li | 21 | 物联网 |
| ko | 22 | 会计 |
| 专业 | 学院 | 学院主任 |
| 电子 | 信息 | 龙老师 |
| 物联网 | 信息 | 丽老师 |
| 会计 | 运管 | 赖老师 |
规范性 和 性能的问题
关联查询的表不得超过三张表
考虑商业化的需求和目标,(成本,用户体验!)数据库的性能更重要
在规范性能的问题的时候,需要考虑一下规范性!
故意给某些表增加一些冗余的字段。(从多表查询变为单表查询)
故意增加一些计算列,(从大数据降低为小数据的查询:索引就是这个道理)
本文来自博客园,作者:阿霖找BUG,转载请注明原文链接:https://www.cnblogs.com/lin-07/articles/16250749.html
浙公网安备 33010602011771号