1命名原则
1.1约定
u是指对数据库、数据库对象如表、字段、索引、序列、存储过程等的命名约定;
U命名使用富有意义的英文词汇,尽量避免使用缩写,多个单词组成的,中间以下划线分割
u避免使用Oracle的保留字如LEVEL、关键字如TYPE (见Oracle保留字和关键字);
u各表之间相关列名尽量同名;
u除数据库名称长度为1 — 8个字符,其余为1 — 30个字符,Database link 名称也不要超过30个字符;
u命名只能使用英文字母,数字和下划线;
1.2表名
规则如下:
命名规则为xxx_yyy_TableName 。xxx表示开发公司的名称,最多五个字母构成,尽量用简称;yyy 表示子系统中的子模块的名称(可以没有),最多五个字母构成,尽量用简称;TableName 为表含义,最多十个字母构成,尽量用简称
TableName 规则如下:
u使用英文单词或词组作为表名,不得使用汉语拼音
u用名词和名词短语作表名
u不使用复数
正确的命名,例如:
fiber_sys_user
fiber_biz_order
1.3存储过程
规则如下:
命名规则为xxx_yyy_StoredProcedureName 。xxx表示开发公司的名称,最多五个字母构成,尽量用
简称;yyy表示子系统中的子模块的名称(可以没有),最多五个字母构成,尽量用简称;
StoredProcedureName 规则如下:
u用动词或动词短语来命名,并带有宾语
u需要符合用Pascal命名规则。
u尽量谨慎地使用缩写
u尽量不要和关键字重合
u不要用任何名前缀(例如U , B)
u StoredProcedureName 内不使用下划线
u当操作依赖条件时,一般结尾使用By+条件
存储过程正确的命名,例如:
sys_lnsertUser
sys_SearchUserByUserlD
sys_DeleteUserByUserlD
1.4视图
规则如下:
u视图的命名采用xxx_yyy_ ViewName_v 。xxx表示开发公司的名称,最多五个字母构成,尽量用简称;yyy表示子系统中的子模块的名称(可以没有),最多五个字母构成,尽量用简称;_v后缀表示视图, ViewName 部分表示视图的含义,最多十个字母构成,尽量用简称。
ViewName 规则如下:
u用名词和名词短语,
u不使用复数
u用Pascal命名规则
u尽量谨慎地使用缩写
u尽量不要和关键字重合
u不要用任何名前缀(例如U,B)
u ViewName 中使用下划线
视图正确的命名,例如:
sys_UserView_v
biz_UserOrderView_v
1.5索引
规则如下:
table_name_column_name_idx 。
多单词组成的 column name ,取前几个单词首字母,加末单词组成column_name 如:
tst_sample 表 member_id 上的索弓丨:tst_sample_mid_idx
sys_news 表 title 上的索弓丨:sys_news_titile_idx ;
1.6序列
规则如下:
table_name_seq ;
如:
tst_sample 表的序列:tst_sample_seq
1.7主键
主键命名:table_name_pk ;
如:
tst_sample 表的主键:tst_sample_pk
1.8外键
夕卜键命名:table_name_column_name_fk ;
多单词组成的 column name ,取前几个单词首字母,加末单词组成column_name
如:
tst_sample 表 user_id 字段的外键:tst_sample_uid_fk
tst_sample 表 type_id 字段的外键:tst_sample_tid」k
2设计规范
2.1规范约定
1.遵守数据的设计规范 3NF规定
?表内的每一个值都只能被表达一次。
?表内的每一行都应该被唯一的标识(有唯一键)。
?表内不应该存储依赖于其他键的非键信息。
2.实体表都必须包含四个字段:编号(ID )、代码(Code )、创建人(Created By )、创建时间(Creation Time )、修
改人(Modified By )、修改时间(Modification Time )、删除标志(Delete Status )。其含义如下:
u编号是系统内的唯一标识
U代码是客户为这个实体的编码,这个字段看需要确定是否保留
u创建人是是指数据库记录创建人
u创建时间是指数据库记录创建时间,默认为SYSDATE
u修改人是是指数据库记录修改人
u修改时间是指数据库记录修改时间,默认为SYSDATE
u删除标志是本条记录是否已删除的标志( 0 :没有删除;1 :已经删除),数据中的数据不做真正删除,
只设置这个标志
这五个字段的命名规则如下
u 实体名+ 字段名称,女口user_id 、user_code 、created_by 、creation_time 、modified_by 、modification_time 、delete_status 。
u这五个字段的类型和长度规则如下
n 编号 INTEGER
n 代码 VARCHAR2 (30 )
n仓U建人INTEGER
n 创建时间DATE
n 修改人INTEGER
n修改时间DATE
n 删除标志CHAR(1)
2.2字段规范
1.一行记录必须表内唯一,表必须有主键。
2.枚举类型使用 NUMBER,且需要说明枚举类型的各个不同取值的含义
3.ID结尾的字段为仅由数字组成,Code结尾的字段为仅由字母或数字组成
4.用CHAR ( 1 )表示布尔值的取大写:“ Y,” “ N”
5.应尽量使用 VARCHAR2 代替CHAR类型;
6.VARCHAR(2)最多 4000 字符;
7.DATE精确到秒,而非天;
8.使用 CLOB 代替 LONG,BLOB 代替 LONG RAW ;
9.使用NUMBER数据类型时请给定长度,例如:NUMBER(5,2) 表示整数部分最大3位,小数部
分为2位;
3使用规范
3.1综合
1.如果开发过程中需要建立索引,需要提交书面的更改请求,说明所需索引的定义(名称、字段列表、
顺序、索引类型)以及建立的理由。数据库管理员统一维护索引并将提交的请求更改。
2.数据库各表的初始数据(包含各代码表、配置表)需要提交给数据库管理员。
3.不得使用触发器。
4.涉及到数据库多表数据的更改 (Insert/Delete/Update) 必须使用数据库事务进行控制,并且必须
有完整事务开始和提交/回滚机制。不能使用范围事务
5.尽量避免Union操作的使用,需要使用时,请向数据库管理员咨询使用Union操作的影响。
6.SQL语句和存储过程,尽量使用PL/SQL Develper 的代码美化器美化。
7.属于ORACLE的关键字大小,表名、列名等小写。
3.2查询
1.在表查询中,一律不要使用 *作为查询的字段列表,需要哪些字段必须显式写明
2.在表查询中,必须有 Where条件,除非此表为非增长表
3.在表查询中,一次最多返回的记录条数不要超过1000条或记录内容不要大于 1MB的数据。