Mysql
大约 3 分钟约 935 字
Mysql
官网: https://www.mysql.com/cn/
和数据库打交道,对于程序员来说是必不可少的。
适当的标准和规范是就如同交通的规则一样,车道、红绿灯、安全带等构成你的用车的体验。
本文将从标准与规范出发,带你更好的和数据库打交道!
当前使用的持久数据库为:Mysql(8.0.28)
结合公司实际情况出发,在数据库设计、表设计等予以规范
一、数据库设计
1、数据库命名
- 【强制】小写字母、下划线
- 【强制】- 分库时、增加数字,格式为:库名_01
- 【强制】- 不得使用复数名词
2、字符集
- 【强制】- Character :utf8mb4
- 【强制】- Collation :utf8mb4_general_ci(默认值)
二、表设计
1、表命名
- 【强制】小写字母、下划线
- 【强制】- 分库时、增加数字,格式为:表名_01
- 【强制】- 不得使用复数名词
2、字符集
- 【强制】- Character :utf8mb4
- 【强制】- Collation :utf8mb4_general_ci(默认值)
3、备注
- 【强制】- 每个表一定要写备注
4、存储引擎
- 【强制】- InnoDB(默认)
5、表字段
1、字段命名
- 【强制】- 小写字母、下划线
- 【强制】- 不得使用复数名词
- 【强制】- 禁止使用保留字段、如:order、desc、match
- 【强制】- 长度不得超过32个字符
2、字段类型
- 【强制】- 所有字段**尽可能的要不为空**
- 【强制】- BLOB或是TEXT列分离到单独的扩展表
- 【强制】- **小数、金额等**要使用 **decimal** 类型
- 【强制】- **varchar** 是可变长字符串,不预先分配存储空间,长度不要超过 5000
3、ID
- 【强制】- id
- 【强制】- 字段类型 unsigned bigint
- 【强制】- id放到第一个字段、且每个表必须要有id字段、中间表除外
4、是否概念字段
- 【强制】- **禁止** is_xxx 格式 如 is_deleted,新项目使用 deleted
- 【强制】- 字段类型 unsigned tinyint
5、备注
- 【强制】- 每个字段必须要有备注
6、关联列
- 【强制】- 字段类型必须保持一致
7、通用必须字段
- 【强制】- 必须字段
| 字段 | 字段类型 | 注释 |
|---|---|---|
| creator_id | bigint unsigned | 创建人id |
| created_time | datetime | 创建时间 |
| reviser_id | bigint unsigned | 更新人id |
| revised_time | datetime | 更新时间 |
| deleted | tinyint unsigned | 逻辑删除 1是 0 否 |
sql语句
ALTER TABLE test ADD creator_id BIGINT unsigned NOT NULL COMMENT '创建人id';
ALTER TABLE test ADD created_time datetime NOT NULL COMMENT '创建时间';
ALTER TABLE test ADD reviser_id bigint unsigned NULL COMMENT '更新人id';
ALTER TABLE test ADD revised_time datetime NULL COMMENT '更新时间';
ALTER TABLE test ADD deleted tinyint unsigned NOT NULL COMMENT '逻辑删除 1是 0 否';8、通用非必须字段
- 【建议】- 看需求来进行选择、自行加入
无法复制加载中的内容
sql语句
ALTER TABLE test ADD creator_name varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人名称';
ALTER TABLE test ADD reviser_name varchar(20) COLLATE utf8mb4_general_ci NULL COMMENT '更新人名称';
ALTER TABLE test ADD enabled tinyint unsigned NOT NULL COMMENT '是否启用 1是 0 否';6、索引
1、索引命名
注:xxx为字段名
- 【强制】- 主键索引、格式:pk_xxx
- 【强制】- 唯一索引、格式:uk_xxx
- 【强制】- 外键索引、格式:fk_xxx
- 【强制】- 普通索引、格式:idx_xxx
2、索引类型
- 【强制】- BTREE
3、唯一索引
- 【强制】- 业务上具有唯一性的字段、一定要加唯一索引
4、外键索引
- 【建议】- 不使用外键索引
- 【强制】- 关联字段一定要增加普通索引、如:idx_order_id
5、联合索引
- 【强制】- 多字段建立联合索引由使用度高到低排列
6、字符串索引
- 【强制】- 在 varchar 字段上建立索引时,必须指定索引长度
7、索引数量
- 【建议】- 不超过5个
三、SQL语句
1、【强制】- 要使用count(*)、不要使用count(字段)
