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