(一)建表规约
强制规约
1. 表达是否概念的字段
使用 is_xxx(is_used) 的方式命名
2. 若字段的数据类型为非负数
类型则为 unsigned
3. 若字段的数据类型为 unsigned tinyint
1表示是,0 表示否
4 . 表名、字段名需 使用小写字母 或 数字
正例:getter_admin , task_config , level3_name
反例:GetterAdmin , taskConfig , level_3_name
5. 表名不能使用负数
正例: user
反例: users
6. 字段不能使用 mysql 保留字
例如:ADD、ALL、ALTER、ANALYZE、AND、AS、ASC、
BEFORE、BETWEEN等
7. 唯一索引
使用 uk_字段名
8. 普通索引
使用 idx_字段名
9. 小数类型
正例: decimal
反例: float、double 存储时存在精度损失问题
若存储的数据范围超过 decimal 的 范围, 建议将将数据拆成整数和小数分开存储
10. 存储的 字符串长度 几乎相等
使用 定长char类型
11. varchar 字符串长度 > 5000
改使用 text类型 避免影响 其他字段的索引效率
建议规约
1. 推荐 表的命名 “业务名称_表的作用”
正例: tiger_task/tiger_reader/mpp_config
2. 数据库名 应与 应用名称 一致
3. 如果修改字段, 需要加上注释
4. 单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表。
说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。5. 合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检
索速度。
正例:人的年龄用unsigned tinyint(表示范围0-255,人的寿命不会超过255岁);海龟就必须是smallint,
太阳的年龄,就必须是int;
如果是所有恒星的年龄都加起来,那么就必须使用bigint。
(二)索引规约
之后更新
(三)SQL规约
之后更新
【注】参考阿里巴巴开发手册 第三节
资料获取:
链接:https://pan.baidu.com/s/11FmO-NoYs7jyfSw8lxcn1w
提取码:ylnb
--来自百度网盘超级会员V3的分享