数据库命名规则

本文档提供了数据库命名规范,包括表、字段、视图等7种常见数据库对象的命名规则,以及SQL语句书写规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.sina.com.cn/s/blog_644eb9350101dh4r.html


1      概述

编写此数据库命名规范的目的,就是提供较为形象、易于阅读、简单明了和原则性一致的数据库命名方法。从而能够方便项目相关人员直观的了解数据库中的所有对象表示的意义,方便大家交流。

这里主要描述以下的7类常见的数据库对象:

1.     表(Table

2.     字段(Fields

3.     视图(Views

4.     存储过程(Stored Procedures

5.     索引(Indexes

6.     关联(Relationships

7.     触发器(Trigger

这一部分描述了数据库命名规范的一般性规则。

1.1    字符集合

1.     26个小写字母(a-z

2.     26个大写字母(A-Z

3.     10个数字字符(0-9

4.     下划线(_

1.2    数据库对象

对象名字由前缀和实际名字组成,前缀和实际名字之间加下划线。

注意:不要在对象名的字符之间出现空格,长度不要超过30个字符。

[对象名字]= [前缀] _ [实际名字]

前缀缩写规则:使用小写字母,针对不同的数据库对象,以下表规范命名。

对象

前缀

tb

视图

vi

索引

idx

关联

rl

存储过程

sp

函数

fn

触发器

tr

实际名字:尽量能够描述实体的内容,由单词或单词组合组成。采用Camel规则书写,即:第一个单词的首字母小写,而后的每个单词的首字母都要大写。

注意:不要以数字和下划线开头,单词之间也不要用下划线分隔。还要避免使用保留关键字和中文拼音,例如:ui_pk_userIdui_firstNameui_lastNametb_userInfo

1.3    SQL语句书写规则

SQL语句中所有保留关键字均用大写字母书写。

本部分详细描述了ITSM系统中可能涉及的数据库对象的命名规则。

1.1    表命名规范

[表名]=tb_[实际名字]

对于表来说,有如下的规则:

1.     使用前缀tb

2.     在表名中尽量少使用复数;

3.     实际名字部分不要使用下划线;

4.         实际名字部分尽量避免缩写,能明确表明其含义的除外,如:tb_userInfo

另外,对于从其它数据库同步获得数据的表,除了以上的命名规则外,还要在[实际名字]后加下划线,然后再加[数据来源的数据库名]

如:tb_assetInfo_croom,表示资产信息表来源于CRoom数据库。

1.2    字段命名规范

[字段名]=[表名简写]_[字段实际名字][字段数据类型缩写]

表名简写部分,由表名的实际名字部分的各个单词的小写首字母顺序组合构成。

1.     如果字段是主键则:[字段实际名字]=pk+_+[实际名字]

2.     如果字段是外键则:[字段实际名字]=fk+_+[实际名字]

3.     如果字段是组合键则:[字段实际名字]=ck+_+[实际名字]

如:ui_pk_userId ui_lastName

另外,对于数据来源于其它数据库的字段,在上述的字段命名规范的最后加下划线,然后再加[数据来源的数据库名]

如:ai_assetName_croom,表示资产名称字段来源于CRoom数据库。

注意:如果在多个表中出现表达意义类似的或者相同的字段,这些字段必须具有相同的字段属性。如:text类型,具有相同的最大长度设置。

[视图名]=vi_[实际名字]

1.     使用vi作为前缀;

2.     实际名字尽量体现视图的功能,并且用下划线分隔列出所有相关的表名;

3.     其它命名要求与表的命名要求一致;

1.1    存储过程命名规范

[存储过程名]=sp_[实际名字]

1.     使用sp作为前缀;

2.     实际名字中要体现这个存储过程所要进行的操作(UpdateDeleteInsert Into等);

3.     对于存储过程来说,实际名字组成由操作和表名构成;

如:sp_updateUserInfo

1.2    索引命名规范

[索引名]=idx[0-9]_[表名简写]_[实际名字]

1.     使用idx作为前缀;

2.     [0-9]用来区分表的多个索引;

3.     [实际名字]是指相关的字段或索引含义;

如:idx0_ui_firstName

1.3    关联命名规范

[关联名]=rl_[主表名简写]_[从表名简写]

关联关系是指数据库表间的外键关系。

如:rl_loginInfo_userInfo

1.4    触发器命名规范

[触发器名]=tr_[实际名字]

1.     使用tr作为前缀;

2.     实际名字中要描述触发器的操作(InsertUpdate等等);

3.     对于触发器来说,实际名字由操作和对应的表名构成;

1.5    函数命名规范

[函数名]=fn_[实际名字]

1.     使用fn作为前缀;

2.     实际名字描述该函数具体行为(getset等等),做到见名释义;


### 数据库命名规范的简洁规则与最佳实践 数据库命名规范是数据库设计中的重要环节,它直接影响到数据库的可维护性和可读性。以下是根据提供的引用内容总结出的数据库命名简洁规则与最佳实践: #### 1. 命名组成规则 数据库名称和表名称应由26个英文字母(区分大小写)、0-9的自然数以及下划线`_`组成[^1]。多个单词之间使用下划线分隔,确保命名清晰易懂。 #### 2. 简洁明确原则 命名应当简洁且具有明确的意义,避免冗长或模糊不清。例如,表名称一般不超过三个英文单词[^2],并且尽量使用名词或动宾短语来描述表的内容。 #### 3. 字母大小写 所有数据库对象(包括数据库、表、字段等)均采用小写命名。这种统一的风格有助于减少因大小写敏感而导致的错误。 #### 4. 关键字避让 禁止使用数据库关键字作为命名的一部分,例如`name`、`time`、`datetime`、`password`等[^1]。这些关键字可能会导致语法冲突或解析错误。 #### 5. 单复数形式 表名称应使用单数形式表示,例如使用`employee`而不是`employees`。如果需要表示明细表,则可以在主表名称后加上`dtl`(detail缩写),如`po_order`的明细表为`po_orderdtl`[^1]。 #### 6. 描述信息 在创建表时,必须为其添加描述信息。这可以通过SQL语句中的注释功能实现,帮助后续开发者快速理解表的用途[^2]。 #### 7. 字符集与排序规则 对于MySQL数据库,建议设置字符集为`utf8mb4`,排序规则为`utf8mb4_general_ci`。这可以确保对多语言字符的良好支持,并提高排序效率。 #### 8. 表名与列名长度限制 根据不同数据库系统的限制,表名和列名的长度应控制在合理范围内。例如,在MySQL中,表名和列名的最大长度为64个字符;而在Oracle中,这一限制为30个字符[^3]。因此,在设计时应尽量缩短名称以适应不同环境的需求。 #### 9. 字段默认值 除特定数据类型(如`timestamp`、`image`、`datetime`等)外,所有字段在设计时都应指定默认值。字符型字段的默认值为空字符串`''`,数值型字段的默认值为`0`,逻辑型字段的默认值也为`0`[^4]。 ```sql CREATE TABLE example_table ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) DEFAULT '' COMMENT '用户名称', age INT DEFAULT 0 COMMENT '年龄', is_active TINYINT DEFAULT 0 COMMENT '是否活跃', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (id) ) COMMENT='示例表'; ``` 以上代码展示了如何遵循上述规则创建一张符合规范的表。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值