Cognos数据库设计规范
1. 维表
1.1. 命名
全为大写,命名规范为“DIM”+“维表具体含义”,一般为分段式的,比如:时间维表,DIM_DATE。
1.2. 主键
任何表必须有主键字段,尽量设置为单主键,主键字段一定是排在最前面的。
1.3. 唯一性
维表数据具有唯一性,无重复记录。
2. 事实表
2.1. 命名
全为大写,命名一般以“FACT”+“业务分类分段”命名,比如医疗服务下面医疗效率里的门急诊人次,FACT_YLFW_YLXL_MJZRC。
2.2. 数值字段
对于数值数据,尽量能与实际大小接近,已达到控制垃圾数据进入的目的。
2.3. 必填字段
确定为必填字段的,应将其设置为“非空”。
3. 索引 3.1. 命名
? 主索引:也就是主键,默认的就是“PK_”+表名,不要去修改它。
? 单索引:“IX_”+ 表名 + “_”+字段名。
? 联合索引:“IX_”+ 表名 + “_”+字段名(按顺序排列,中间不用分隔符)。
4. 存储过程
4.1. 命名
“usp_”+子系统名+“_”+名称,名称一般为分段式的,首字母大写。例如:usp_FACT_YLFW_YLXL_MJZRC为“医疗服务”中“医疗效率”的门急诊人次存储过程。
4.2. 参数命名
“@”+ 变量类型缩写(小写) + 字段名或参数功能名(首字母大写)。变量类型缩写,字符型:s,整形:n,浮点型:f, 时间日期型:d。若参数的值要赋到字段中去,则该参数的名称就是字段名即可,只是字段名换为首字母大写。若字段名为 XM,则参数名即为 @sXm。
4.3. 游标命名
“cs”+ 光标功能名(首字母大写)。例如:存个人保健号的游标,csGrbjh。
4.4. 注释头
/********** [版本号] 1.0.0.0.0 [创建时间] [作者]
[版权] 上海金仕达卫宁软件股份有限公司 [描述] [功能说明] [调用的usp] [调用实例] [修改历史]
**********/
大的修改一次,版本号增加。
4.5. 返回信息
? 数据操作型:前台调用,完成数据的“新增、修改、删除”等操作的,反馈执行结
果的,其结果集的第一列:字段名为RST,值为“T”表示执行成功,“F”执行失败。第二列:字段名为MSG,值为“输出提示信息”。对于“新增”,有可能还需要反馈主键值的,放在第三列:字段名为keyvalue或主键字段名,操作成功时值为具体的主键值,失败时值为null或空字符。例如:usp_Jkda_Gr_SaveGrxx,“保存个人信息”的存储过程,成功时:select 'T' as RST, '保存成功!' as MSG, @sLsh as GRBJH。失败时:select 'F' as RST,'保存失败!' as MSG, '' as GRBJH。 ? 取数据型:直接反馈回前台需要的具体的数据集。
4.6. 错误处理
对实体表数据进行增删改操作的SQL语句后,应添加错误判断语句,主要判断@@Error或@@RowCount,根据具体条件灵活应用。
4.7. 事务使用
? 涉及到两张及以上实体表的数据增删改操作,就需要开启事务; ? 在每张实体表的数据增删改后面都需要紧跟容错处理(出错回滚事务);
? 事务的范围尽量小,中间处理过程(比如对传入XML数据的解析、临时表等操作),
可以先不开启事务。
4.8. 编写规范
? 保留字:类似select等保留字,都小写。
? 缩进对齐:敲两个空格键进行缩进对齐,不允许使用Tab键进行缩进(就算是将Tab
键设置为只缩进2格,也不要使用)。
? 编写环境字体:最好改为“宋体 9号或10号”,默认的字体(MS Shell Dlg,9号)
看不出缩进对齐效果。
? 每行字符数(包括空格):不要太多,最好不要超过200个字符,多了分行。
? 注释:尽量详细,涉及到复杂逻辑和算法的地方必须加上。
4.9. 注意事项
? 存储过程中,实体表名和字段名也都大写,特别是返回的数据集中的表名和字段,
必须大写。
5. 视图、触发器和函数
5.1. 视图命名
与存储过程命名一样,只是前缀由“usp_”改为“uvw_”。
5.2. 触发器命名
“utr_”+表名,一个表中有多个触发器时,“utr_”+表名+功能名。
5.3. 函数命名
与存储过程命名一样,只是前缀由“usp_”改为“ufn_”。