大型企业数据库设计编码规范

数据库技术
451
0
0
2022-08-08

1命名规范

数据库规划命名规范

l 数据库名(DB_NAME)与数据库实例名(INSTANCE_NAME)保持一致

l 长度不能超过8个单字节字符

l 只能包括A-Z,0-9

l 数据库名全部大写

l 建议数据库名与系统名称保持一致

l 数据库用户与系统名称保持一致

l 通常情况下,建议数据库用户的表空间名与系统名称相同

l 建议用户的临时表空间名为:表空间名+TMP

数据库对象命名规范

通用命名规则

1. 必须以字母开始。

2. 长度不能超过30个单字节字符。

3. 只能包括A-Z,a-z,0-9和_(注释除外)。

4. 不能使用数据库的保留字和关键字。

5. 为一个对象命名时,应该遵循描述性和唯一性原则,保证同一用户的各个对象的名称不发生冲突,并且便于记忆。

6. 命名应该使用英文单词,避免使用拼音,特别不应该使用拼音简写。命名不允许使用中文或者特殊字符。

7. 英文单词使用用对象本身意义相对或相近的单词。选择最简单或最通用的单词。不能使用毫不相干的单词来命名

8. 当一个单词不能表达对象含义时,用词组组合,如果组合太长时,采用用简或缩写,缩写要基本能表达原单词的意义。

9. 名称一律大写,以方便不同数据库移植,以及避免程序调用问题。

10. 命名的各单词之间可以使用下划线进行分隔。

11. 同一个字段名在一个数据库中只能代表一个意思。比如telephone在一个表中代表“电话号码”的意思,在另外一个表中就不能代表“手机号码”的意思。

12. 在系统中不允许出现同名的对象, 哪怕对象的类型和子系统都不相同。

表属性规范

表名

表名由前缀、子系统缩写和实际名字组成。中间以“_”分隔。表的实际名字如果由多个单词组成,中间用“_”分隔符。

前面加 T + “_”+数据表的用途功用

如T_PUB_USER 个人信息表

在定义时必须写数据字典

l 在命名表时,用单数形式表示名称。例如,使用EMPLOYEE,而不是 EMPLOYEES。

表分区名

表分区名由前缀、表的缩写子系统缩写和实际名字组成。中间以“_”分隔。表的实际名字如果由多个单词组成,中间用“_”分隔符。

字段

由前缀和实际名字组成。中间以“_”分隔。字段的实际名字如果由多个单词组成,中间以“_”分隔。

l 每个表都必须定义主键。

l 可变字符串的长度,10以上的尽量设置为10的整数倍。如:VARCHAR(100)等。

l 不要在列的名称中加入表的信息

l 不要在列的名称中包含数据类型。

l 尽量不要使用CLOB,BLOB,LONG等大对象数据类型

l 注意不要使用数据库保留字

主键名

前缀为PK_。主键名称应是 前缀+表名+构成的字段名。如果复合主键的构成字段较多,则只包含第一个字段。表名可以去掉前缀。

外键名

前缀为FK_。外键名称应是 前缀+ 外键表名 + 主键表名 + 外键表构成的字段名。表名可以去掉前缀。

普通索引

前缀为IDX_。索引名称应是 前缀+表名+构成的字段名。如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。表名可以去掉前缀。

主键索引

前缀为IDX_PK_。索引名称应是 前缀+表名+构成的主键字段名,在创建表时候用using index指定主键索引属性。

唯一索引

前缀为IDX_UK_。索引名称应是 前缀+表名+构成的字段名。

外键索引

前缀为IDX_FK_。索引名称应是 前缀+表名+构成的外键字段名。

函数索引

前缀为IDX_FUNC_。索引名称应是 前缀+表名+构成的特征表达字符。

视图

视图名由前缀、子系统缩写和实际名字组成。中间以“_”分隔。视图的实际名字如果由多个单词组成,中间用“_”分隔符。

注:尽量减少视图的使用。

以V+“_”+功能用途

如:V_DEPT 部门视图

在定义时必须写数据字典

实体化视图

前缀为MV_。按业务操作命名实体化视图。

存储过程

存储过程名由前缀、子系统缩写和实际名字组成。中间以“_”分隔。存储过程的实际名字如果由多个单词组成,中间用“_”分隔符。

以P+“_”+功能用途

如:P_ADDUSER 添加用户信息

在定义时必须写数据字典

函数

函数名由前缀、子系统缩写和实际名字组成。中间以“_”分隔。函数的实际名字如果由多个单词组成,中间用“_”分隔符。

以F+“_”+功能用途

如:F_GETUSERINFO 获取用户信息

在定义时必须写数据字典

触发器

前缀为TRG_。

数据包

前缀为PKG_。按业务操作集合命名数据包。

序列

前缀为SEQ_。

2排版及书写规范

1. 大写所有的关键字(保留字)

2. 所有的概念对象(tables,views,procedures)大写开头

3. 所有的标量(column names,variables, etc.)小写

4. 一条语句一行. 在关键字和语句主体之间保留间隔.

5. 遵循 Metadata committee L8 naming conventions

6. 注意缩进和空行

7. 存储过程的脚本文件一般为每个表一个段落,注明开始和结束.

8. 注释及文件框架

--------------------------------------------------------------------

-- FileName: ***.sql

-- Description: ***模块存储过程

-- Author: ***

-- Date: 2016-10-27

--------------------------------------------------------------------

-- <Users>

-- Created by jame 2016-10-27

-- Stored Procedure : 功能说明

-- Gets: @UserID nvarchar(100)

-- Returns: ***

----------------------------------------------------------------------

CREATE PROCEDURE **_Get_UserByID

@UserID NVARCHAR(100)

AS

SET NOCOUNT ON

INSERT Users -- 短的时候放到一行

(

[UserID],

***

)

VALUES

(

@UserID

...

)

-- </Users>

-- End of file

附录

附录一:数据库对象前缀对应关系表

对象名称前缀备注表T_表分区P_字段F_主键PK_外键FK_普通索引IDX_主键索引IDX_PK_唯一索引IDX_UK_外键索引IDX_FK_函数索引IDX_FUNC_视图V_实体化视图MV_程序过程SP_函数FN_触发器TRG_数据包PKG_序列号SEQ_

今日微语

坚持到底,才能笑到最后。人可以打败自己,也可以成全自己。没有人知道下一秒会发生什么,只要这一秒不放弃,下一秒就有可能会出现奇迹。不要为小事遮住视线,我们还有更大的世界。成功的人不一定是那些条件最好、能力最强的,却一定是那些意志最坚定、战斗力最顽强的。只要不抛弃梦想,不放弃努力,你也可以见证奇迹!