Mysql 数据库 开发规范

(一)建表规约

强制规约

  1. 表达是否概念的字段

使用 is_xxx(is_used) 的方式命名

  1. 若字段的数据类型为非负数

类型则为 unsigned

  1. 若字段的数据类型为 unsigned tinyint

1表示是,0 表示否

4 . 表名、字段名需 使用小写字母 或 数字

正例:getter_admin , task_config , level3_name

反例:GetterAdmin , taskConfig , level_3_name

  1. 表名不能使用负数

正例: user

反例: users

  1. 字段不能使用 mysql 保留字

例如:ADD、ALL、ALTER、ANALYZE、AND、AS、ASC、

BEFORE、BETWEEN等

  1. 唯一索引

使用 uk_字段名

  1. 普通索引

使用 idx_字段名

  1. 小数类型

正例: decimal

反例: float、double 存储时存在精度损失问题

若存储的数据范围超过 decimal 的 范围, 建议将将数据拆成整数和小数分开存储

  1. 存储的 字符串长度 几乎相等

使用 定长char类型

  1. varchar 字符串长度 > 5000

改使用 text类型 避免影响 其他字段的索引效率

建议规约

  1. 推荐 表的命名 "业务名称_表的作用"

正例: tiger_task/tiger_reader/mpp_config

  1. 数据库名 应与 应用名称 一致

  2. 如果修改字段, 需要加上注释

  3. 单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表。

说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。

  1. 合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检

索速度。

正例:人的年龄用unsigned tinyint(表示范围0-255,人的寿命不会超过255岁);

海龟就必须是smallint,

太阳的年龄,就必须是int;

如果是所有恒星的年龄都加起来,那么就必须使用bigint。

(二)索引规约

之后更新

(三)SQL规约

之后更新

【注】参考阿里巴巴开发手册 第三节

资料获取:

链接:https://pan.baidu.com/s/11FmO-NoYs7jyfSw8lxcn1w

提取码:ylnb

--来自百度网盘超级会员V3的分享

相关推荐
AlickLbc13 分钟前
DM-V8数据库证书过期处理过程记录
数据库
l1t13 分钟前
DeepSeek总结的五分钟测试:Ted Dunning 谈 DuckDB 为何让分析更轻松
数据库·sql·duckdb
超级新零售28 分钟前
零售 SaaS 与本地部署,技术责任边界究竟怎么分?
数据库·零售
考虑考虑1 小时前
瀚高数据库
数据库·后端·postgresql
dishugj1 小时前
oracle日志切换三条命令区别
数据库
Patrick在香港2 小时前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
悟道书生2 小时前
(一)Navicate为什么转存结构和数据只转存表而不包含建库?
数据库·oracle
赤龙ERP2 小时前
ERP周报:连接器开闸、国产GPU进场与智能工厂253家
数据库·人工智能·大模型·rpa·erp·企业数字化·builderpattern
lusklusklusk2 小时前
SQL Server补丁版本号为什么“日期新反而版本低”?——GDR、CU、CU+GDR 版本号规则与升级路径详解
数据库
key_3_feng3 小时前
评估与对齐:Agent 自我进化的护栏
前端·数据库·agent