- DDL规范:
- 数据库名、表名和字段名都小写,需要区分词意以“_”连接
- 禁止使用关键字做为库、表、字段名
- 表,字段名需要有注释,注释简单明了
- 必须有主键,主键需要为int/bigint unsigned
- 主键ID 是和业务无关的自增id
- 不允许使用外键
- 字段不允许为NULL,需为not null default 0(or default '') (text/blob 类型除外)
- 索引名为idx_开头,唯一键以uk_开头,后以字段名(或字段名缩写)拼接
- 使用字符集 utf8/utf8mb4
- 非特殊情况,不允许指定与库不一致的编码规则与排序规则
- date/datetime/timestamp默认值使用合法的时间,建议统一使用"1971-1-1 00:00:00"
- 密码生成规则:数字大小写字母特殊字符混合的生成策略
- DML规范:
- [重要] 调用方需要有错误重试机制,毕竟网络都不能保障绝对100%的可用,所以调用端一定要有容错机制!
- [重要] 长连接需要业务自己做心跳保活!如果不做探活,那么需要有错误重试机制!
- [重要] 长连接需要业务自己限制最大使用时间和最大复用次数,确保流量在各proxy上保持均衡,防止proxy异常恢复后负载均衡失效!
- [重要] 线上业务查询一定要根据索引查询,避免查全表 以及 结果集较大的查询
- [重要] delete/udpate 必须带where(强制要求)
- 数据链路规范:
- 分表规范
- 分表命名必须为“表名_自然数”,分表序号前不可随意添加0,如:g_order_1,不可命名为g_order_01
- 分表表名前缀不可重复
- 不可多级分表(即不允许分表格式为“表名_xx_xx”,如:不可命名为g_order_01_02)
- 表字段变更(新增、类型变更等)必须在所有分表范围内一致变更
- 临时表命名规范
- 临时命名必须以"temp_",以免与正式表名(含分表名)冲突
- 不可与正式表表名重复
- 变更操作规范
- 字段类型不可随意变更
- 变更字段类型必须先和数据下游使用方确认,否则可能造成数据丢失、下游数据报错等
|