SQL语句
0. 数据类型
1. 库
2. 表
2.1 单表
2.2 多表
3.索引
4.事务
一、三大范式
目的:解决数据的冗余问题
- 第一范式:
(1)原子性:每一列不可再分(列不可分) - 第二范式:
(1)前提:满足第一范式
(2)单个表描述单件事,不存在传递依赖 - 第三范式
(1)前提:满足第一范式、第二范式
(2)表中每一列数据都和主键有直接关系,直接依赖于主键,而非间接
二、规范性与性能
-
评价数据库设计好坏是以 性能 评判(降低成本,提高用户体验)
-
要求:
1 关联查询的表不得超过三张。
2 适当考虑规范性
3 可以故意给某些表增加一些冗余的字段(从多表查询变为单表查询)
4故意增加一些计算列(从大数据量降低为小数据量的查询:索引)
三、索引
1.分类
- 主键索引 (Primary Key)
- 唯一标识,只能有一个列作为主键,主键不可重复。
- 唯一索引 (Unique Key)
- 避免重复的列出现,唯一索引可以重复,多个列都可标识为唯一索引。
- 常规索引 (Key / Index)
- 默认的,index 、key关键字来设置
- 全文索引 (FullText)
- 在特定的数据库(MyISAM)下才有
- 快速定位数据
注意:一张表中,主键索引只能有一个,唯一索引可以有多个
2.设计
- 索引不是越多越好
- 不要对经常变动的数据增加索引
- 小数据量的表不需要加索引
- 索引一般加在常用来查询的字段上
四、建表经验
# 每个表最好都存在以下5个字段
id # 主键
version # 乐观锁
is_delete # 伪删除
create_time # 创建时间
modify_time # 修改时间
欢迎大家评论,如果本文对您有帮助,请点个赞,您的点赞对我很重要!这次一定!感谢!!!
转发请注明出处呦!感谢!!!