更新时间:2025-03-13 GMT+08:00
数据库对象命名规范
- 【规格】不使用保留或非保留关键字命名数据库对象。可以使用如下命令查询数据库关键字,或者关键字章节中查看。
SELECT * FROM pg_get_keywords();
- 【规格】数据库对象命名长度不可超过63个字节。
表1 数据库对象名称长度约束 对象类型
长度约束
(单位:字节)
备注
数据库名
<=63
-
表名
<=63
-
表对象
<=63
如果超过该长度内核会对表名进行截断,从而造成实际名称和设置值不一致的现象,且在不同字符集下,可能造成字符被截断,出现预期外的字符。
非业务使用的临时表
<=63
例如:运营人员临时用作备份或临时进行数据采集用的中间表。
命名规则:tmp_表名缩写_创建人账号缩写_创建日期,例如:tmp_user_ytw_160505
表字段
<=63
字段命名使用实际含义的英文单词或简写。
例如表示bool类型的字段,命名规则:“is_”+描述。如member表上表示为enabled的会员的列命名为is_enabled。
视图名及字段名
<=63
-
函数名及参数名
<=63
-
- 【规则】避免使用双引号括起来的字符串来定义数据库对象名称,除非必须限制数据库对象名称的大小写。
- GaussDB默认不区分SQL中对象名称的大小写,假如同一数据库中同时存在“t_Table”“t_table”两张不同的表,这种情况下应使用“”双引号,如果不存在该情况,避免使用“”双引号。
- 数据库对象名称大小写敏感会使定位问题难度增加。
- 【规则】标识符需满足以下要求:
- 以字母或下划线开头,中间字符可以是字母、数字、下划线、$、#。
- 若标识符被双引号("")包含或者B模式下被反引号(``)包含,则可以使用合法字符的任意组合,如"123gs_column"。
- 标识符不区分大小写,只有被双引号包含或者B模式下被反引号(``)包含才区分大小写。
- 【建议】避免使用双引号括起来的字符串来定义数据库对象名称,除非需要限制数据库对象名称的大小写。数据库对象名称大小写敏感会使定位问题难度增加。
- 【建议】数据库对象命名风格务必保持统一。
- 增量开发的业务系统或进行业务迁移的系统,建议遵守历史的命名风格。
- 建议使用多个单词组成,以下划线分割。
- 数据库对象名称建议能够望文知意,尽量避免使用自定义缩写(可以使用通用的术语缩写)进行命名。例如,在命名中可以使用具有实际业务含义的英文词汇或汉语拼音,但规则应该在数据库实例范围内保持一致。
- 变量名的关键是要具有描述性,即变量名要有一定的意义,变量名要有前缀标明该变量的类型。
- 【建议】表对象的命名应该可以表征该表的重要特征。例如,在表对象命名时区分该表是普通表、临时表还是非日志表。
- 普通表名按照数据集的业务含义命名。
- 临时表以“tmp_+后缀”命名。
- 非日志表以“ul_+后缀”命名。
- 外表以“f_+后缀”命名。
- 不创建以redis_为前缀的数据库对象。
- 不创建以mlog_和以matviewmap_为前缀的数据库对象。
- 不创建以gs_role_为前缀的数据库对象。
父主题: 数据库设计规范