总则:不管你用什么命名方法,所有的命名规则一定要统一,不要一会儿中文拼音一会儿英文等等。
1、采用英文单词或英文短语(包括缩写)作为名称,不能使用无意义的字符或汉语拼音。
2、每个数据库对象表,视图,字段,存储过程,不要用任何数据库的关键词作为名称。凡是能写注释的地方,应该写上注释,以便查看。
3、名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。
4、对长度也要有限制,最好不要超过30个字符,在PD设置生成时,部分数据库对象会自动截取到30位。
5、所有名称的字符范围为:A-Z, a-z, 0-9 和_(下划线)。不允许使用其他字符作为名称。
6、注释分单行和双行,在数据库对象如函数,存储过程,视图等,都需要在页头添加注释,比如:
/* 功能描述:用户信息的登录验证
创建人:XX
创建日期:2010-5-5
修改备注1:按照日期,修改内容,人名
修改备注2:比如:2010-5-6 修改用户的角色问题 AJIN */
数据库对象 |
前缀 |
命名说明 |
表 |
|
写法一:模块名_具体功能实体名,如用户角色表User_Role等,
写法二:直接写成UserRole,不用"_"来区分,看习惯和所用数据库。
|
列名 |
表名缩写_ |
写法:表名缩写_具体内容
如用户角色表User_Role的名称:UR_Name,
如果是单个的表名,比如区域表Area,则可以写成Area_ID。
表命名的十个需要注意的地方
|
存储过程 |
sp_(不用)
up_ usp_
proc_
|
单个表直接用表名,并加功能,大小写均可(Add,Edit,Del,Query,Report,Validate等)
|
视图 |
vw_ |
vw_直接的内容,一般是用于查询Query和报表Report两种情形 |
触发器 |
trg_ |
方法一:trg_表名_方法名_[之前之后等]
比如:trg_User_Info_Insert
方法二:
触发器分为行级Row【R】和语句级Statement[【S】,
又分为after【A】,before【B】,instead of【I】,
方法又有三种Insert【I】,Update【U】,Detele【D】,
所以:如:trg_User_Info_RBI(代表语句级,之前,插入操作),有点专业,不知道命名规则的人看不明白。
|
函数 |
fn_ f_ |
fn_功能名称。一些是具体的操作函数,比如字符串处理,fn_SplitStr(参数)处理字符串,如果与模块相关,则fn_模块名称_具体方法 |
主键 |
pk_ |
pk_表名[或缩写]_列名
简洁的写法:
写法一:pk_表名,
写法二:pk_列名,因为列名设计时已经包含表的含义
|
外键 |
fk_ |
fk_从表名字段_主表名字段。这个推荐
|
索引 |
idx_ |
idx_表名_字段名(一个或多个)【可以在其后加U或者C,规则同触犯器】
推荐使用:idx_字段名
一是唯一Unique【U】与非唯一NonUnique【N】
一是聚集Cluster【C】与非聚集NonCluster【N】
|
约束 |
ck_ |
1. 默认约束:df_表名_列名,df_列名 |
2.唯一约束:uni_表名_列名,uni_列名
|
3.检查约束:【ck_列名】,【ck_表名_列名】 |
4.主键约束:【pk_表名】,【pk_列名】
|
5.外键约束:fk_表名_REFERENCE_表名
|
序列 |
seq_ |
写法1:seq_User_Info(因为每个表一般只有一个序列)
写法2:seq_UI_ID (因为表名含义已经包含在字段中)
写法3:seq_User_Info_UI_ID(表名加字段名)
|
事务 |
trans_ |
trans_ |
游标 |
crs_ |
crs_ |
表空间 |
_data
_idx
_tmp
_rbs
|
@面向用户或者应用名,这个以用户名或者应用名加后缀组成
数据表空间以用户名+_+data命名
索引表空间以用户名+_+idx命名
专用临时表空间以用户名+_+tmp命名
专用回滚段表空间以用户名+_+rbs 命名
特殊处理: @LOB 段数据专用表空间后面再加_lobs 命名
|