[转]数据库表字段命名规范——汇总
原文链接:
数据库命名规范(命名规则)——博客园
数据库表字段命名规范——博客园
引言:数据库设计过程中库、表、字段等的命名规范也算是设计规范的一部分,设计规范更多的是为了确保数据库设计的合理性、项目最终的协调稳定性,命名规范更多的是为了确保设计的正式和统一。制定规范的直接目的是约束行为,最终目的是确保色痕迹的合理统一,命名规范就是希望我们团队中所有人看到设计成果,一眼就可以明白这个数据库、表、字段等等是做什么的、代表的含义是什么。
本文是一篇包含了数据库命名、数据库表命名、数据库表字段命名及SQL语言编码的规范文档,针对研发中易产生的问题和常见错误做了一个整理和修改,为日后涉及到数据库相关的研发工作做好准备。本文是对网上大部分数据库、表、字段命名规范的转载及汇总,同时也加入了自己一部分命名心得。
数据库命名规范#
可以采用26个英文字母 (区分大小写) 和0-9的自然数 (一般不需要) 加上下划线 ‘’ 组成,命名简介明确 (Student_Union),多个单词用下划线 ‘’ 分隔,一个项目一个数据库,多个项目慎用同一个数据库。
数据库表命名规范#
命名规范#
- 采用26字母和0-9的自然数(一般不使用)加上下互相 ‘’ 组成,命名简洁明确,**多个单词用下划线 ‘’ 隔开**
- 全部小写命名,尽量避免出现大写(因为在我目前使用过的数据库里都不区分大小写)
- 禁止使用关键字,如:select、table、show 等等
- 表名称不要取得太长(一般不超过三个英文单词)
- 表的名称一般使用名词或者动宾短语(
实在不行就用拼音吧起码自己能看懂。。。用拼音一定会被同事鄙视的,禁止使用拼音。。。。) - 也要注意单词形式,列如:使用 user ,而不是 users(因为用户表是一个的而不是多个)
- 表必须填写描述信息(建表时可以用注释详细写出表细节的作用,不同数据库的注释都不一样)
命名模板#
- 模块_+功能点 示例:alllive_log alllive_category
- 功能点 示例:live message
- 通用表 示例:all_user
错误示范#
-
冗余
错误示例:yy_alllive_video_recomment yy_alllive_open_close_log
说明:去除项目名,简化表名长度,去”yy_” -
相同类别表命名存在差异,管理性差
错误示例:yy_all_live_category yy_alllive_comment_user
说明:去除项目名,统一命名规则,均为”yy_alllive_”开头即可 -
命名格式存在差异
错误示例:yy_showfriend yy_user_getpoints yy_live_program_get
说明:去除项目名,统一命名规则,动宾短语分离且动宾逻辑顺序统一
字段命名规范#
命名规范#
- 采用26字母和0-9的自然数(一般不使用)加上下互相 ‘’ 组成,命名简洁明确**,多个单词用下划线 ‘’ 隔**开
- 全部小写命名,尽量避免出现大写
- 字段必须填写描述信息
- 禁止使用数据库关键字,如:name,time ,datetime password 等
- 字段名称一般采用名词或动宾短语
- 采用字段的名字必须是易于理解,一般不超过三个英文单词
- 在命名表的列时,不要重复表的名称(如:在 user 表中,出现 user_name 字段)
- 不要在列的名称中包含数据类型
- 字段命名使用完整名称,禁止缩写
命名模板#
- 名词 示例:user_id user_name sex
- 动宾短语 示例:is_friend is_good
- 逻辑主键:id。所有的表必须创建逻辑主键,采用统一的主键便于分库分表以及数据抽取。
- 业务主键:code, 必须创建唯一索引。业务主键除了反应真实数据关联,也便于程序进行类型判断。
- 外键:columnName_fk,字段名+fk后缀,比如state_fk。
- 父主键关联:pid
错误示范#
-
大小写规则不统一
错误示例:user_id houseID
说明:使用统一规则,修改为”user_id”,”house_id” -
加下划线规则不统一
错误示例:username userid isfriend isgood
说明:使用下划线进行分类,提升可性,方便管理,修改为”user_name”,”user_id”,”is_friend”,”is_good” -
字段表示不明确
错误示例:uid pid
说明:使用完整名称,提高可读性,修改为”user_id”,”person_id”
SQL语言编码规范#
大小写规范#
- 所有关键字最好大写,如:DELETE、UPDATE、INSERT等等
- 多有函数及其参数中除用户变量以外的部分大写
- 在定义变量时用到的数据类型小写
注释#
注释可以包含在批处理中,在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性,本规范建议:
- 注释以英文为主,实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用,为避免后续版本执行过程中发生某些异常错误,建议使用英文注释
- 注释尽可能详细、全面创建每一数据对象前,应具体描述该对象的功能和用途,传入参数的含义应该有所说明,如果取值范围确定,也应该一并说明,取值有特定含义的变量(如boolean类型变量),应给出每个值的含义
- 注释语法:单行注释、多行注释
单行注释:注释前有两个连字符(--)对变量、条件子句可以采用该类注释
多行注释:符号之间的内容为注释内容,对某项完整的操作建议使用该类注释 - 注释简洁,同时应描述清晰
- 函数注释:
编写函数文本--如触发器、存储过程以及其他数据对象--时,必须为每个函数增加适当注释,该注释以多行注释为主,主要结构如下:
CREATE PROCEDURE sp_xxx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!