首页  |  知识库  |  资源下载  |  在线工具  |  A-Z  •  JAR  •  名词查         

对于在使用Oracle数据库进行系统开发设计时对象命名、设计、开发评审及变更常用的规范二

标签:oracle,规范,表 (Table),分区表 (Partition Table),函数 (Function),触发器 (Trigger),存储过程 (Procedure),物化视图 (MV)     发布时间:2017-06-26   

上一页

5 (Table)

5.1 表命名

建议2: 表名建议要体现系统简称或者功能模块名

规范5: 表名由英文单词组成;单词之间用下划线隔开,不允许用汉语拼音;尽量用单词的全称,不用缩写

对于名称超长的,可对其中的个别单词缩写,单词缩写必须能够完整表达原有英文全称的含义;

规范6: 表名要有含义

能保证不太熟悉这个系统的人都能大概理解这个表是什么意思。

规范7: 表名规范如下:模块简称+”_”+业务描述

例如:

是否正确

举例

说明

错误

APP_USERUSERTEST


正确

SEC_USER

SEC为权限模块(SECURITY)的简称,USER是表描述

 

5.2 字段命名

规范8: 字段名由英文单词组成;单词之间用下划线隔开,不允许用汉语拼音;尽量用单词的全称,不用缩写

对于名称超长的,可对其中的个别单词缩写,单词缩写必须能够完整表达原有英文全称的含义;

规范9: 字段名要有含义

能保证不太熟悉这个系统的人都能大概理解这个字段是什么意思。另外,如果有外键关联或者是不同表中同样含义的字段,最好用同一个字段名。而不同含义的字段,尽量避免使用相同的名字。

规范10:        Date 类型的字段, 需要以“date_”作为前缀或者“_date”做为后缀。Boolean类型的字段,需要以”is_”作为前缀。

例如:

是否正确

举例

说明

错误

ADTPADDRESS_T


正确

ADDRESS_TYPE


 

5.3 约束命名

规范11:        所有约束必须有约束名,包括非空约束

约束按如下规则命名:

主键约束:PK_+表名_+字段名;

外键约束:FK_+表名_+字段名;

唯一约束:UN_+表名_+字段名;

非空约束:NN_+表名_+字段名;

值检查约束:CK_+表名_+字段名;

例如:

是否正确

举例

说明

错误

PK_1


正确

PK_SEC_USER_USERID

FK_SEC_USER_ROLEID

UN_SEC_USER_USERID

NN_SEC_USER_USERID

CK_SEC_USER_USERNAME


 

 

6 分区表 (Partition Table)

规范12:        分区表和字段的命名规范与普通表命名规范相同,分区索引的命名规范与普通索引的命名规范相同。

规范九: 必须为表分区命名。

表分区的命名格式为:”表名_+分区特征+_pt

索引分区的命名格式为:”索引名_+分区特征+_pi

例如:

是否正确

举例

说明

错误



正确

policy_base_info上按created_date字段来分区,则分区名称可为:policy_base_info_2001_pt

policy_base_info_2002_pt等;

endorse_info上按department_code字段来分区,则分区名称可为:endorse_info_sz_pt

endorse_info_sh_pt等;

policy_base_info上将索引pbi_created_date进行分区,其分区名称可以为:

idx_pbi_created_date_2001_pi

idx_pbi_created_date_2002_pi等。


 

7 索引 (Index)

规范13:        索引的命名格式为:

主键索引:”PK_”+表名+”_”+字段名或字段名组合(与主键约束同名)

                外键索引”FK_”+表名+”_”+字段名或字段名组合(与外键约束同名)

                其他索引”IDX_”+表名+”_”+字段名或字段名组合

例如:

是否正确

举例

说明

错误

IDX_1INDEX_1SEC_USER_IDX


正确

PK_SEC_USER_USERID

FK_SEC_USER_GROUPID

IDX_SEC_USER_USERNAME


 

8 同义词 (Synonym)

规范14:        如系统中没有冲突,则同义词名称必须与其指向的对象同名

规范15:        如果系统中已存在同名的公共同义词,则采用数据库用户名_表名来命名。

建议3: 如果系统中已存在某公共同义词,则不建议创建同名的私有同义词,以免引起混乱。

例如:

是否正确

举例

说明

错误

CREATE PUBLIC SYNONYM SEC_USER FOR SECURITYDATA.SEC_ROLE;


正确

无冲突:

CREATE PUBLIC SYNONYM SEC_USER FOR SECURITYDATA.SEC_USER;


存在冲突:

CREATE PUBLIC SYNONYM SECURITYDATA_SEC_USER FOR SECURITYDATA.SEC_USER;


 

9 序列号 (Sequence)

规范16:        sequence的命名格式为:表名+”_”+字段名+ “_SEQ”

例如:

是否正确

举例

说明

错误

SEC_USER_SEQTEST_SEQ


正确

SEC_USER_USERID_SEQ

USERID为与SEQUENCE关联的字段名

 

10 视图 (View)

规范17:        视图名规范如下:模块简称+”_”+视图描述+” _V”

例如:

是否正确

举例

说明

错误

SEC_USER_VIEW

VIEW_SEC_USER


正确

SEC_USER_V

V表示该对象是一个视图,SEC为权限模块(SECURITY)的简称,USER是表描述

 

11 物化视图 (MV)

规范18:        物化视图的命名格式为:模块简称+”_”+物化视图描述+ “_MV”

例如:

是否正确

举例

说明

错误

SEC_USER_MVIEW

MVIEW_SEC_USER


正确

SEC_FLUSH_DUTY_TYPE_PCIS_MV

SEC为模块简称,FLUSH_DUTY_TYPE_PCIS为物化视图描述

 

12 存储过程 (Procedure)

规范19:        存储过程的命名格式为:模块简称+”_”+过程描述+ “_PRC”

例如:

是否正确

举例

说明

错误

TEST_PRC


正确

SEC_DROP_ORDER_TABLES_PRC

SEC为模块简称,DROP_ORDER_TABLES为存储过程描述

 

13 触发器 (Trigger)

建议4: 因触发器太耗费资源,原则上尽量不使用触发器

规范20:        触发器的命名格式为:模块简称+”_”+触发器描述+ “_TRI”

例如:

是否正确

举例

说明

错误

TEST_TRI


正确

SEC_DROP_ORDER_TABLES_TRI

SEC为模块简称,DROP_ORDER_TABLES为触发器描述

 

14 (Package)

规范21:        包的命名格式为:模块简称+”_”+包描述+“_PKG”

例如:

是否正确

举例

说明

错误

TEST_PKG


正确

SEC_DROP_ORDER_TABLES_PKG

SEC为模块简称,DROP_ORDER_TABLES为包描述

 

15 函数 (Function)

规范22:        函数的命名格式为:模块简称+”_”+函数功能描述+“_FUN”

例如:

是否正确

举例

说明

错误

TEST_FUN


正确

SEC_DROP_ORDER_TABLES_FUN

SEC为模块简称,DROP_ORDER_TABLES为函数描述

 

16 数据库链接 (DataBase Link)

建议5: 链接名称建议要尽量体现目标系统简称及目标用户

建议6:  从长远来看,需要控制dblink的使用,如果一定有准实时的数据交互访问需求,可以考虑goldengate

    dblink会使得数据库库和库之间耦合度太高,不利于后期运维管理,而且用得多了,dblink的接口用户密码很难管理,导致数据库迁移升级时接口用户密码要重置,更加麻烦。

规范23:        如链接是公共连接,则命名格式:

          远程数据库名称+_+远程用户名+ _DBLINK

        如果是私有连接,则命名格式:

          模块简称+_+远程数据库名称+_+远程用户名+_+DBLINK”。

例如:

是否正确

举例

说明

错误

TEST_DBLINK


正确

D0RWA_SECURITYDATA_DBLINK

建公共链接,连接远程库D0RWA的用户SECURITYDATA

TSP_D0RWA_SECURITYDATA_DBLINK

新建TSP模块的私有链接,连接远程库D0RWA的用户SECURITYDATA

 

下一页