[转载收藏]数据库设计命名参考规范
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 |