Skip to content

数据类型与设计规范

常用数据类型(选型思路)

类别类型说明
整数TINYINTBIGINT在满足范围前提下 选更小类型 省空间
小数DECIMAL(p,s)金额等精确运算避免浮点误差
字符串CHAR / VARCHAR定长用 CHAR,变长用 VARCHAR;长文本 TEXT
时间DATE / TIME / DATETIME / TIMESTAMP业务是否需要时区;勿用字符串存时间
枚举ENUM固定取值集合时可减少无效输入
半结构化JSON(5.7+)存文档型字段;复杂查询、索引与约束需单独设计

字符集新建库表优先 utf8mb4,兼容 Emoji 与完整 Unicode。

版本提示:自 MySQL 8.0.17 起,整数类型(如 INT(11))括号里的显示宽度已弃用含义,新建表可写 INT / BIGINT 即可,避免依赖「位数」语义。


命名规范(提要)

  • 库 / 表 / 字段:小写 + 下划线 snake_case,见名知意;避免拼音与无意义缩写。
  • 表名:多用 复数 表实体(团队内需统一);多对多关联表可用 a_b 两实体组合。
  • 主键:常用 无业务含义自增 id;业务唯一约束另建 唯一索引
  • 索引名idx_字段uk_字段 等便于运维识别。

范式与反范式

  • 范式:减少冗余,更新一致性好。
  • 反范式:适度冗余字段减少 JOIN,适合读多写少报表类查询。

根据读写比例权衡,避免过早冗余。


小结

类型 够用即可;命名与字符集 团队统一;表结构变更尽量 可回滚、可灰度