数据库设计 注意事项 之 数据库的三范式
所有的问题 不说因为难 难过去的 ,而是因为理解能力差 ,而耽误的人儿!
A:设计数据库应该注意哪些问题呢?
B: 这个我没注意,我设计表的过程中,一般是先通过Rational Rose 进行分析,梳理,一般我会注重他们的共同特征…(有的没的一堆话)
其实以上回答不准确,因为我并不明白A 的问题,回忆了一下,可能考点在数据库设计三范式吧。接下来温习一下吧。
数据库三范式之------------第一范式:
要求主键,数据库中不能出现重复数据,每个字段都是原子性 不可再分。 每一行必须唯一,也就是每个表必须有主键。
数据库三范式之------------第二范式:
在第一范式的基础上,数据库中所有非主键字段必须完全依赖于主键字段,不能产生部分依赖。尽量避免联合主键。
数据库三范式之-----------第三范式:
在第二范式的基础之上,非主键字段不能产生传递依赖于主键字段。
好了 设计表基础东西我们了解了,还是好好再看一遍问题吧。查阅资料问了度娘 简化重新回答一次;
注意事项:
- 先根据产品设计对业务逻辑进行梳理,利用工具初步定下来,需要哪些表
- 确定表与表之间的关系
- 对于表中需要哪些字段 ,什么字段应用什么类型 进行考虑
- 字段是能否为空,是否需要设置默认值
- 设置主键字段 考虑它的唯一性
- 约束和规则
- 外键关系
- 索引的使用
三范式 三范式 三范式 一定不能忘记 如果忘记就去创建一张表吧 (●’◡’●)
突然想把数据库SQL 优化也写进来!
如下:
- 表的设计合理(符合数据库设计的三范式)
- 添加适当的索引(index)[普通索引,主键索引,唯一索引,全文索引]
- 分库分表(水平分割,垂直分割)
- 读写分离
- 存储过程[模块话编程,可以提高速度]
- 对mysql的配置优化【配置最大并发数 my.ini,调整缓存大小】
- mysql服务器硬件升级
- 定时去除不需要的数据,定时进行碎片整理MYISAM存储引擎:MYISAM;特点:不支持事务,表级锁,读取数据快,占用资源少,不支持外键。