数据文件命名
方式1:数据文件命名采用 系统名+_+文件类型.mdf,比如系统名为 ComSys,则数据库文件命名为ComSys_database.mdf,有的数据库文件有多个,比如SQL Server就有2个,一个是数据库文件,另一个是日志文件,那么他们的文件命名分别为 ComSys_database.mdf, ComSys_log.log。
方式2:如果数据库采用文件系统,而不是裸设备,约定下列命名规则:
1)数据文件以表空间名为开始,以.dbf为结尾,全部采用小写英文字母加数字命名。如该表空间有多个数据文件,则从第2个数据文件开始,在表空间名后加_。例:对system表空间的数据文件:system.dbf,system_2.dbf
2)对Oracle数据库的控制文件,用control.ctl来表示。如control01.ctl,control02.ctl。
3)对Oracle数据库的日志文件,在线日志文件用redo<组名><文件序列名>.dbf来表示。其中组名和文件序列名均用2位数字来表示。如第一组的两个文件表示位redo0101.dbf和redo0102.dbf。归档日志用arch_%t_%s.arc来表示。其中%t和%s均为Oracle约定的变量。
数据库对象命名规范
数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。
1)前缀:
使用小写字母。如:
表(Table) tb_
字段(Column)
主键(Primary key) pk_
外键(Foreign key) fk_
Check约束(Check Constraint) ck_
Default 约束(Default Constraint) df_
视图(View) vi_
索引(Index) idx_
存储过程(Stored procedure) sp_
用户定义函数 (User-defined function) fn_
序列(Sequence) seq_
表空间(Tablespace) ts_
变量名(Variable) @
触发器(Trigger) tr_
2)实际名字:
实际名字尽量描述实体的内容,由单词或单词组合,每个单词的首字母大写,其他
字母小写,不以数字和_开头。如:
表 User_Info
视图 User_List
存储过程 User_Delete
3)示例:
合法的对象名字类似如下:
表 tb_User_Info tb_Message_Detail
视图 vi_Message_List
存储过程 sp_Message_Add
表的命名
表名由前缀和实际名字组成。前缀使用小写字母 tb_,表示表,格式为"tb_"+ 名称(名称尽量使用英文单词,每个单词的首字母大写),后面字段等等加表名的时候不需要加前缀。
1) 对工作用表来说,表名可以加上前缀 WORK_ 后面附上采用该表的应用程序的名字。 在
命名过程当中,根据语义拼凑缩写即可。注意,由于Oracle会将字段名称统一成大写或者 小写中的一种,所以要求加上下划线。
举例:
定义的缩写
Sales: Sal 销售;
Order: Ord 订单;
Detail: Dtl 明细;
则销售订单明细表命名为:tb_Sal_Ord_Dtl;
2) 如果表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词。
举例:
定义的缩写
Material:Ma 物品;
物品表名为: tb_Material, 而不是 tb_Ma。
但是字段物品编码则是:Ma_ID;而不是 Material_ID
3) 所有的存储值列表的表前面加上前缀 Z,目的是将这些值列表类排序在数据库最后。
4) 所有的冗余类的命名(主要是累计表)前面加上前缀 X
冗余类是为了提高数据库效率,非规范化数据库的时候加入的字段或者表
5) 关联类通过用下划线连接两个基本类之后,再加前缀 R 的方
式命名,后面按照字母顺序罗列两个表名或者表名的缩写。
关联表用于保存多对多关系。
如果被关联的表名大于10个字母,必须将原来的表名的进行缩写。如果没有其他原因, 建议都使用缩写。
举例:表 Object 与自身存在多对多的关系,则保存多对多关系的表命名为: tb_R_Object; 表 Depart 和 Employee 存在多对多的关系;则关联表命名为 tb_R_Dept_Empl。
字段(属性,列)命名
1) 采用有意义的列名,表内的列要针对键采用一整套设计规则。
主键
主键的命名采用如下规则:
主键名用pk_开头,后面跟该主键所在的表名,也就是 pk_TableName_ID。主键名长度不能超过30个字符。如果过长,可对表名进行缩写。缩写规则同表名的缩写规则。
举例:销售订单的编号字段命名: pk_Sal_Ord_ID;如果还存在一个数据库生成的自动编号,
则命名为:ID。
外键
外键的命名采用如下规则:
外键名用fk_开头,后面跟该外键所在的表名和对应的主表名,也就是 fk_ 从表名_主表名。子表名和父表名自己用下划线 "_" 分隔。外键名长度不能超过30个字符。如果过长,可对表名进行缩写。缩写规则同表名的缩写规则。外键名用小写的英文单词来表示。
2) 数据库字段名全部采用小写英文单词,单词之间用 "_" 隔开,
命名规则是表别名+单词。
如:user_name,user_pwd。(表别名规则,如果表名是一个单词,别名就取单词的前4个 字母;如果表名是两个单词,就各取两个单词的前两个字母组成4个字母长的别名;如果表 的名字由3个单词组成,则从头两个单词中各取一个然后从最后一个单词中再取出两个字 母,结果还是组成4个字母长的别名。)
Check 约束命名
"ck_"+"表名"+"_"+"字段名"
e.g.: ck_tb_Company_Comp_Zip
Default约束命名
"df_"+"表名"+"_"+"字段名"
e.g.: df_tb_News_News_Hit
视图命名
1) 视图名由前缀和实际名字组成,中间用下划线连接。前缀使用
小写字母 vi,表示视图。
合法的视图名类似如下:
vi_User
vi_UserInfo
2) 命名应尽量体现各视图的功能。
索引命名
索引名 ="idx_"+表缩写+相关字段/索引含义
索引空间:在相应的数据表空间的名字前加idx_。如对用户缺省表空间的索引空间,用ts_idx_default来表示。对代码表的索引表空间,用ts_idx_code来表示。
存储过程命名
存储过程名由前缀和实际名字加操作名字组成,中间用下划线连接。
前缀:使用小写字母 sp,表示存储过程。
操作名字: Insert|Delelte|Update|Caculate|Confirm
合法的存储过程名类似如下:
sp_User_Insert
函数命名
跟存储过程类似,fn_User_Insert
序列命名
数据库序列的命名采用如下规则:
序列名用seq_开头,后面跟使用该序列的字段名。如果有几个字段用同一个序列,用下划线 "_" 连接几个字段的名称。如果不同表中相同的字段名需要使用不同的序列,则在字段名后加表的特征,用下划线 "_"连接。序列名长度不能超过30个字符。序列名用小写的英文单词来表示。
表空间
1:数据库系统表空间
数据库系统表空间包括system表空间,临时表空间,回滚段的表空间。约定下列命名规则:
1)system表空间由数据库直接限定,不能进行修改。
2)临时表空间用temp来表示。如果有多个临时表空间,从第2个临时表空间开始,在temp后面加2来表示。
3)回滚段表空间用undotbs来表示。如果有多个回滚段表空间,从第2个回滚段表空间开始,在undotbs后面加来表示。
2:数据库的用户表空间
数据库的用户表空间用ts_<表空间名>来表示。其中,表空间名分为:
数据空间:对于用户的缺省表空间,用default来表示。对于其他的表空间,根据存放在表空间上的表的类别来表示。如放代码的表,用code来表示。放客户资料的表,用customer来表示。尽量用一个表空间来存放该类的表。如果某表特别大,可考虑单独使用一个表空间。
变量名命名
变量名采用小写,若属于词组形式,用下划线分隔每个单词,如@sys_err_no。
触发器的命名
触发器以 tr 作为前缀,触发器名为相应的表名加上后缀, Insert 触发器加 "_I", Delete
触发器加 "_D", Update 触发器加 "_U", 如: tr_Customer_I, tr_Customer_D, tr_Customer_U。
命名中其他注意事项
1) 以上命名都不得超过30个字符的系统限制。变量名的长度限制为29(不包括标识字符@)。
2) 数据对象、变量的命名都采用英文字符,禁止使用中文命名。绝对不要在对象名的字 符之间留空格。
3) 小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突
4) 保持字段名和类型的一致性, 在命名字段并为其指定数据类型的时候一定要保证一致 性。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。
5)所有的表、字段、存储过程等必须有注释,注释的语言是系统而定。