数据库复杂就需要设计
糟糕得数据库设计:
- 数据冗余,浪费空间
- 数据库插入和删除都会麻烦、异常【屏蔽使用武力外键】
- 程序得性能差
良好得数据库设计
- 节省内存空间
- 保证数据库得完整性
- 方便我们开发系统
软件开发中,关于数据库得设计
- 分析需求
- 概要设计:E-R图
** 设计数据库得步骤:(个人博客)
- 收集信息,分析需求
- 标识实体(把需求落地到每个字段)
- 标识实体之间的关系
三大范式
为什么需要数据规范化?
- 信息重复
- 更新异常
- 插入异常 :无法正常插入
- 删除异常:
第一范式:原子性,保证每一列不可再分
要求数据库表的每一列都是不可分割的原子数据
第二范式:满足第一范式的前提下,每张表只描述一件事
第三范式:满足第一范式和第二范式的前提下,需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关
规范性和性能的问题:
关联查询的表不得超过三张表
- 考虑商业化的需求和目标,(成本,用户体验!)数据库的性能更加重要
- 在规范性能的问题的时候,需要适当的考虑一下 规范性!
- 故意给某些表增加一些冗余的字段。(从多表查询中变为单表查询)
- 故意增加一些计算列(从大数据量减为小数据量查询:索引)