数据库多表命名的通用规范

一、核心总原则(记住这 4 条)

  1. 小写英文 + 下划线,不用中文、不用空格、不用大写
  2. 见名知意,看到表名就知道存的是什么
  3. 统一前缀,按业务模块分组,几十张表也一目了然
  4. 单数名词,不用复数(user 不用 users,这是行业主流习惯)

二、最实用的命名格式

格式

模块_业务含义

例子:

  • user 用户
  • sys_user 系统用户
  • crm_customer 客户管理模块 - 客户
  • sale_order 销售模块 - 订单
  • goods_product 商品模块 - 产品

这样你表再多,打开一看就知道:哪些是系统表、哪些是销售表、哪些是客户表。


三、常用模块前缀(你直接拿去用)

你做企业管理、销售系统,直接用这套:

  • sys_ 系统(用户、角色、菜单、日志)
  • crm_ 客户关系
  • sale_ 销售
  • stock_ 库存
  • goods_ 商品 / 产品
  • finance_ 财务、收款、付款
  • project_ 项目
  • attach_ 附件、文件
  • log_ 各类操作日志

四、表名单词怎么选?

用最简单、通用的英文单词,别造词:

  • 用户:user
  • 角色:role
  • 菜单:menu
  • 客户:customer
  • 供应商:supplier
  • 商品:product
  • 分类:category
  • 订单:order
  • 订单明细:order_item
  • 入库:stock_in
  • 出库:stock_out
  • 合同:contract
  • 收款:payment
  • 日志:log
  • 附件:attachment

小技巧:不会的单词直接查,统一用同一个词,别一会 customer 一会 client。


五、关联表怎么命名?(中间表)

A 表和 B 表多对多,命名格式:a_b(按模块首字母顺序)

例子:

  • 用户角色关联:user_role
  • 角色菜单关联:role_menu
  • 商品分类关联:product_category

六、简单示范一套完整表名(你可以感受下结构)

plaintext

复制代码
sys_user
sys_role
sys_menu
sys_role_menu
sys_log

crm_customer
crm_linkman

goods_category
goods_product

sale_order
sale_order_item
sale_payment

stock_in
stock_out

attach_file

几十张表也非常清晰,不会乱。


七、你必须避开的坑

  1. 不用中文、不用数字开头
  2. 不用空格、不用 -,只用 _
  3. 不用拼音:xueshengdingdan 非常不专业
  4. 不要太长,控制在 2~3 个单词 最好
  5. 别乱用复数:order 不是 orders
相关推荐
这个DBA有点耶2 小时前
2026年分布式数据库有哪些主流选择?先评估这5个维度再决定
数据库·分布式·dba
用户7783366132114 小时前
用 React Hook 封装搜索数据:useSerp 的防抖、缓存与错误处理
python·api
这个DBA有点耶5 小时前
从MySQL 5.7到8.0:JSON查询性能差在哪?虚拟列索引vs多值索引怎么选
数据库·mysql·架构
胡写代码5 小时前
数据库审计字段,别再每张表各写一套了——我统一成这 6 个字段
数据库
65岁退休Coder8 小时前
LangGraph v1.2.9 节点容错策略 & 流式输出 & 持久化记忆管理
后端·python·langchain
SelectDB9 小时前
为什么 JSON 正在成为分析数据库新的竞争点?
数据库·json·agent
ClouGence10 小时前
开源数据库管理工具 CloudDM 4.2.0 发布,新增 GoldenDB、KingbaseES 等数据源
数据库·dba·devops
发霉的馒头10 小时前
ORA-00845: MEMORY_TARGET not supported on this system的解决方法
数据库
ikun_文10 小时前
Django框架路由Router的使用
python·pycharm·django
IvanCodes10 小时前
Python 基础语法(二):字符串与常用操作
python