数据库设计(一)
来源:互联网 发布:java 工程师 简历 编辑:程序博客网 时间:2024/05/18 23:54
需求分析
- 了解要存储的数据
- 存储特点
- 永久存储(分表,分库存储)
- 不永久存储(归档,删除)
- 时效数据(归档,不删除)
- 数据的生命周期
逻辑设计
避免数据操作异常(插入,更新,删除)和数据冗余
- 第一范式:表是二维表
- 第二范式:单关键字段的表
- 第三范式:不存在传递函数依赖
物理设计
- mysql存储引擎 engine=innodb
表的字段类型
- 同样的数据,字符处理往往比数字忙
- 列中的存储长度差不多时,且小于16个字符时选char而不是varchar
主键(尽可能小)
- 避免使用外键约束,但在相关联列上建立索引
- 避免使用触发器
- 严禁使用预留字段
- 反范式设计
维护优化
- 数据字典(每个列添加备注,然后select导出)
索引
1,不要有太多索引 2,不要强制索引关键字
表结构维护
表的垂直拆分与水平拆分(控制表的宽度和大小)
尽可能少使用“select *”查询
- 不要使用全文索引
阅读全文
0 0
- 数据库设计(一)
- 数据库设计(一)
- 数据库设计(一)
- 数据库设计指南(一)
- BI数据库设计(一)
- 数据库设计经验谈 (一)
- 如何设计数据库(一)
- 如何设计数据库(一)
- MYSQL数据库设计(一)
- mysql数据库设计(一)
- MongoDB数据库设计(一)
- 数据库设计原则(一)
- 数据库设计指南(一)设计之前
- 用户权限设计(一)-数据库设计
- 数据库设计经验谈 一 (引)
- Power Designer数据库设计(一)
- 数据库设计中的三范式(一)
- 数据库框架设计与实现(一)
- 颜色代码大全
- 微信小程序,时间戳转为日期格式
- Bootstrap DateTimePicker选择月份BUG
- OpenGL ES应用开发实践指南(android 卷)笔记 第二章1
- spring+SpringMVC+Mybatise实现用户登录后挤掉前面的用户
- 数据库设计(一)
- 去掉超链接或按钮点击时出现的虚线边框
- Virustotal——md5转sha256
- 安卓自定义 View 进阶:Path 完结篇
- mysql中log-bin日志设置
- mysql处理海量数据时的一些优化查询速度方法
- 2017年多校赛第一场 1001 Add More Zero(逻辑思维)
- String、StringBuilder和StringBuffer的区别
- 百练_3682:整数奇偶排序