Skip to content

命名规范 ​

TIP

规定数据库中表、字段、索引、约束等的命名方式,适用于 MySQL 8.4 数据库。

设计原则 ​

原则说明
见名知意名称应准确表达用途,避免 data、temp、col1 等模糊命名
风格统一全库使用 snake_case,禁止混用驼峰
简洁适度名称尽量简短但不失语义,建议不超过 30 字符
前缀规范业务表统一使用 sys_ 前缀,日志表使用 sys_log_ 前缀
禁止拼音不使用拼音或拼音缩写

命名风格速查 ​

类型风格示例
表名snake_case + sys_ 前缀sys_user、sys_dept、sys_role_menu
字段名snake_caseuser_name、create_time、del_flag
主键idid
外键关联表_iddept_id、role_id、user_id
索引idx_字段名 或 uk_字段名idx_user_name、uk_account
视图v_ 前缀v_user_info

表命名 ​

业务表 ​

格式:sys_ + 业务域英文名词(复数/单数视情况)

text
✅ sys_user           # 用户表
✅ sys_dept           # 部门表
✅ sys_role           # 角色表
✅ sys_menu           # 菜单表
✅ sys_dict           # 字典表
✅ sys_post           # 岗位表
✅ sys_job            # 定时任务表
❌ user               # 缺少 sys_ 前缀
❌ Sys_User           # 使用 PascalCase
❌ sysUser            # 使用 camelCase
❌ t_user             # 使用 t_ 前缀(非本项目规范)

关联表 ​

格式:sys_ + 主表 + 从表(多对多关系)

text
✅ sys_user_role      # 用户-角色关联表
✅ sys_user_post      # 用户-岗位关联表
✅ sys_role_menu      # 角色-菜单关联表
✅ sys_post_role      # 岗位-角色关联表
❌ user_role          # 缺少 sys_ 前缀
❌ sysUserRole        # 使用 PascalCase

日志表 ​

格式:sys_log_ + 日志类型

text
✅ sys_log_login      # 登录日志表
✅ sys_log_operation  # 操作日志表
✅ sys_system_log     # 系统日志表
❌ log_login          # 缺少 sys_ 前缀
❌ sys_log_login_log  # 重复 log

扩展字段表 ​

格式:sys_ + 业务名 + 后缀

text
✅ sys_biz_conf       # 业务配置表
✅ sys_app_conf       # 应用配置表
✅ sys_attachment     # 附件表
✅ sys_message        # 消息表
✅ sys_event          # 事件表
✅ sys_division       # 行政区划表
✅ sys_language       # 语言配置表

字段命名 ​

通用字段(所有表必备) ​

字段类型说明
idBIGINT主键,自增
create_byVARCHAR(64)创建人
create_timeDATETIME创建时间
last_update_byVARCHAR(64)最后更新人
last_update_timeDATETIME最后更新时间
del_flagINT删除标记(0=正常,1=删除)
statusINT状态(0=启用,1=禁用)
versionINT乐观锁版本号

业务字段 ​

格式:snake_case,业务语义清晰

text
✅ user_name          # 用户名
✅ account            # 账号
✅ dept_id            # 部门 ID
✅ mobile             # 手机号
✅ email              # 邮箱
✅ birth_date         # 出生日期
✅ post_level         # 岗位级别
❌ userName           # 使用 camelCase
❌ UserName           # 使用 PascalCase
❌ un                 # 缩写不清晰
❌ field1             # 无意义命名

状态/标志字段 ​

格式:业务含义 + _flag / _status / _type

text
✅ del_flag           # 删除标记
✅ status             # 状态
✅ sex                # 性别
✅ user_type          # 用户类型
✅ biz_type           # 业务类型
✅ theme_type         # 主题类型
❌ flag1              # 无意义
❌ type               # 过于通用

索引命名 ​

普通索引 ​

格式:idx_ + 字段名(多个字段用下划线连接)

text
✅ idx_user_name              # 用户名单索引
✅ idx_create_time            # 创建时间索引
✅ idx_dept_id_create_time    # 部门 ID + 创建时间联合索引
❌ index1                     # 无意义
❌ idx_userName               # 使用 camelCase

唯一索引 ​

格式:uk_ + 字段名

text
✅ uk_account                 # 账号唯一索引
✅ uk_mobile                  # 手机号唯一索引
❌ unique_account             # 使用 full 单词
❌ uk_userName                # 使用 camelCase

约束命名 ​

主键约束 ​

格式:pk_ + 表名

text
✅ pk_sys_user                # 用户表主键
❌ primary                    # 无意义

外键约束 ​

格式:fk_ + 子表 + 父表 + 字段

text
✅ fk_sys_user_sys_dept_dept_id     # 用户表部门 ID 外键
❌ foreign_key_1                     # 无意义

数据库命名 ​

库名 ​

text
✅ guava_prod               # 生产库
✅ guava_dev                # 开发库
✅ guava_test               # 测试库
❌ GUAVA_PROD               # 大写
❌ guavaProd                # 驼峰

命名 Checklist ​

建表/改表前自查:

  • 表名使用 sys_ 前缀 + snake_case
  • 关联表命名格式为 sys_主表_从表
  • 日志表命名格式为 sys_log_类型
  • 字段名使用 snake_case,无拼音、无缩写
  • 必备通用字段齐全(id、create_by、create_time、del_flag、status、version)
  • 索引命名符合规范(idx_ / uk_ 前缀)
  • 名称不超过 30 字符
  • 无无意义命名(field1、col1、temp)

相关规范 ​