[转载收藏]数据库设计命名参考规范

l 所有名称的字符范围为:A-Z, a-z, 0-9 和_(下划线)。不允许使用其他字符作为名称。

l 采用英文单词或英文短语(包括缩写)作为名称,不能使用无意义的字符或汉语拼音。 l 每个数据库对象表,视图,字段,存储过程,凡是能写注释的地方,应该写上注释,以便查看。 l 名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。@对长度也要有限制,最好不要超过30个字符,在PD设置生成时,部分数据库对象会自动截取到30位。 | 注释分单行和双行,在数据库对象如函数,存储过程,视图等,都需要在页头添加注释,比如:        /* 功能描述:用户信息的登录验证            创建人:XX            创建日期:2010-5-5            修改备注1:按照日期,修改内容,人名            修改备注2:比如:2010-5-6  修改用户的角色问题  AJIN         */       

数据库设计命名参考
数据库对象 前缀 命名说明
 

模块名_具体功能实体名,如用户角色表User_Role等

列名 表名缩写_

表名缩写_具体内容,

如用户角色表User_Role的名称:UR_Name

表命名的十个需要注意的地方

存储过程 sp_SP_proc_usp_
p_

单个表直接用表名,并加功能,大小写均可(Add,Edit,Del,Query,Report,Validate等)如:sp_User_Info_Add,多个表sp_User_UserRole_Query等

视图 vw_ vw_直接的内容,比如vw_User_Info,将用户信息连接放在一起供查询,vw_User_Role_Info等(一般是用于查询Query和报表Report两种情形)
触发器 trg_

触发器分为行级Row【R】和语句级Statement[【S】,又分为after【A】,before【B】,instead of【I】,方法又有三种Insert【I】,Update【U】,Detele【D】,

所以命名方法一:如:trg_User_Info_RBI(代表语句级,之前,插入操作),有点专业,不知道命名规则的人看不明白。不过这个一旦使用习惯了,看起来真的蛮清楚地。

所以命名方法二:一般情况下,都直接简单写成trg_User_Info_Insert ,如果有更多的说明注释,这个时候可以考虑在后面添加,比如trg_User_Info_Insert _After_Row【或trg_User_Info_Insert _AR】,这样就比较长,看起来不是很爽。字符数量也有可能越界。

函数 fn_
ufn_
f_
fn_功能名称。一些是具体的操作函数,比如字符串处理,fn_SplitStr(参数)处理字符串,如果与模块相关,则fn_模块名称_具体方法
主键 pk_

pk_表名[或缩写]_列名

简洁的写法:

pk_表名,也可,代表这个表的主键,一个表只能有一个主键。

pk_列名,也可,因为列名已经包含表的含义,比如用户信息表的主键定义为:pk_UI_ID

外键 fk_

fk_主表名[或缩写]_列名_引用表名[或缩写]_引用列名【也可以直接写列名】,因为命名字段名时,本身已经包含表的含义。

fk_从表名字段_主表名字段。这个推荐使用。

索引 idx_或者_idx

idx_表名_字段名(一个或多个)的索引,

推荐使用:idx_字段名。因为字段名已经包含表名的缩写。

比如idx_User_Info_UI_Name,建立基于User_Info表的用户名的索引。主键的索引是默认的表名_PK,

注意索引分为两种分法,一是唯一[Unique]与非唯一[NonUnique];

一是聚集[Cluster]与非聚集[NonCluster],可以考虑在索引的后面继续添加,比如idx_UserInfo_UI_Name_Unique_NonCluster

特殊说明,设置主键后,主键本身就是约束(不能为空)同时还创建了一个唯一的索引。在SQL 2005中自动的设置为聚集索引,一个表只能有一个聚集索引]

约束 ck_

约束分为五种类型,又分为列级约束和表级约束,故约束有时直接添加在列后,不单独加在数据表创建后。约束在开发期可以使用,在发布使用期,应去除。

写SQL语句时,除了外键约束,都可以直接放在列后,数据库自动命名,图形界面创建时,都可以实现自动命名。
1. 默认约束:df_表名_列名,df_列名

2.唯一约束:uni_表名_列名,uni_列名

3.检查约束:ck_表名_列名,ck_列名

4.主键约束:pk_表名_列名,pk_列名,pk_表名均可

设置主键时,省略了约束的语法,UI_ID number(5) not null  [constraint pk_User_Info_UI_ID]可以省略 primary key

5.外键约束:fk_表名_列名,

fk_从表名字段_主表名字段,这个推荐使用。

序列 seq_

一般其后是表名和字段,简洁的写法是直接加字段名,比如seq_User_Info_UI_ID,简洁写法:seq_UI_ID

事务 trans_ 事务的前缀,事务和变量一样一般是在数据库编程中遇到
游标 crs_ 游标使用
表空间 用户名或应用程序名_data\idx\tmp\rbs[_lobs可选] @面向用户的专用数据表空间以用户名+_+data命名,专用索引表空间以用户名+_+idx命名,专用临时表空间以用户名+_+tmp,专用回滚段表空间以用户名+_+rbs 命名,
@面向应用程序的表空间以应用名+_data/应用名+_idx/应用名+_tmp/应用名+_rbs 命名;
@LOB 段数据专用表空间以其数据表空间+_+lobs 命名,如上例中数据表空间为Aud_data,则LOB 段表空间可命名为Aud_data_lobs

 

 

 

posted @ 2010-05-06 20:19  Rukai  阅读(357)  评论(0编辑  收藏  举报