低编码时的大小写切换)
规则2:程序块应采用缩进风格书写,保证代码可读,风格一致,缩进格数统一为2格;
规则3:代码中需要空位时,统一采用空格键输入,不允许用TAB键产生空位;说明:不同的编辑器对T AB的空位格数设置不一致,会导致使用TAB键产生空位的代码格式混乱;
规则4:同一条语句占用多行时,每一行的开始应是关键字,且关键字应和第一行左对齐,如确实不能从关键字分行,则分行处应对其上一行被分行的同类代码的最左边;
建议1:对于INSERT… VALUES和UPDATE语句,一行写一个字段,每个字段相对于INSERT语句空两格,这段后面紧跟注释(注释语句左对齐),VALUES和INSERT左对齐,左括号和右括号与INSERT、VALUES左对齐。
建议2:INSERT…SELECT语句时,应使每行的字段顺序对应,以每行最多不超过4 个字段,以方便代码阅读,括号的内容另起一行缩进2 格开始书写,关键字单词左对齐,左括号、右括号另起一行与左对齐。规则1:不允许将多行语句书写在同一行;
规则2:不允许将SQL语句写成一行,再短的SQL也应该在谓词处分行 ;
规则3:相对独立的程序块之间应加空行
规则4:不同类型的操作符混合使用时,应使用括号明确的表达运算的先后关系;
规则5:BEGIN和END应独立成行
规则6:SQL语句中的逗号后面应增加一个空格,以使得代码清晰
建议1:减少控制语句的判断次数,比如在ELSE(IF…ELSE)语句中,尽量将尽快能检测到结果的判断提前
建议2:尽量避免使用嵌套的IF语句,在这种情况应使用多个IF语句来判断其可能性。
建议3:存储过程、函数、触发器、程序块中定义的变量和输入、输出参数在命名上有所区分。
一般用’v_’开头代表程序块中定义的变量
一般用’p_’开头代表输入参数变量
一般用’x_’开头代表输入输出或输出参数变量
规则1:查询数据时,尽量不使用SELECT *,而是给出明确的字段,但该规则不包括SELECT COUNT (*)语句
规则2:INSERT语句应该出字段列表
规则3:从表中同一笔记录中获取记录的字段值,须使用一SQL 语句得到,不允许分多条SQL 语句。规则4:当一个PL/SQL 或SQL 语句中涉及到多个表时,始终使用别名来限定字段名,这使其它人阅读起来更方便,避免了含议模糊的引用,其中能够别名中清晰地判断出表名。
说明:别名命名时,尽量避逸使用无意义的代号a、b 、c… ,而应该有意义( 如表mtl_system_ite ms_b 对应别名为msi,po_headers_all 别名对应为pha)。
规则5:确保变量和参数在类型和长度与表数据列类型和长度相匹配。
说明:如果与表数据列宽度不匹配,则当较宽或较大的数据传进来时会产生运行异常。
规则6:一句SQL如果只访问了单表,禁止使用表别名
规则7:运算符以及比较符左边或者右边只要不是链接的括弧,则空一格
规则8:任何SQL书写单行不得超过80字符(含左边的缩进)
规则9:无特殊情况,代码注释尽量使用英文;
所有命名规则中,必须优先遵守通用规则,列入通用规范中的规则必须强制遵守
规则1:任何数据库对象的命名,不得使用汉字;
规则2:任何命名长度不得超过30
说明:在部分数据库中(例如ORACLE),表名长度是不可以超过30的,如果命名超过30,则可能给以后的迁移带来麻烦
规则3:用户对象命名应全部为小写,且不允许使用控制符号强制转换对象为小写字符
说明:部分数据库(如oracle中,系统表会记录对象为大写,如果使用了强制转换为小写,则每次访问均要使用强制字符访问)
规则4:命名应使用富有意义的英文,禁止使用拼音首字母,一般情况下不建议使用拼音命名;
规范5:命名不得使用数据库保留字
说明:使用了数据库保留字,会导致需要访问该对象时,需要代码做特别的转换才能访问
规则1:同类业务的表,以相同的表示该类业务的英文开头.
说明:同类业务的表以相同的英文开头,在逻辑上清晰,且可避免维护过程中对该类表的误操作
如下语句不符合规范(假定表wap_user和表user_login_log都属于wap类业务)
如下语句符合规范
规则2:同类表,如果按照时间不同建立的表,后缀格式一般情况下应为’_YYYY[MM[DD]]’格式
如下语句不符合规范(将年份2010简写为10,导致含义模糊)
如下语句符合规范
规则1:字段命名应具有含义,能反映该字段存储的内容,如确实无法使用富有含义的字段名,则应增加字段备注。
规则2:同种用途的字段,在同一个业务中的所有表中,应保持有同样的字段类型和字段长度,并尽量保持一致的字段命名,否则易导致业务接口冲突)
建议1:字符类型尽量定义为varchar类型而非char类型
说明:在数据库存储中,varchar类型采用变长存储,而char类型为定长存储,在大多数情况下,定长更浪费空间,但是定长字符的性能略高于变长字符
规则1:主键名称应以”pk_”开头,后接表名
规则1:外键名应以”fk_”开头,后接表名
规则1:唯一索引应以”uk_”+”表名_”+”字段名”命名
规则2:普通索引应以”idx_”+”表名_”+“字段名”命名
规则3:bitmap索引应以”bidx_”+”表名_”+“字段名”命名
规则1:视图命名应以“v_”+“表名[_表名[_表名]]”命名
规则1:同义词命名要求和其所指向的对象同名
insert语句字段顺序规则1:函数命名以”func_”开头,后接函数的功能
规则1:存储过程以“prc_”开头,后接功能描述
规则1:包以“pkg_”开头,后接功能描述
规则1:数据库链以“dl_”+“$SID_$USER”命名
规则1:触发器以“tri_”+表名+“_ins/del/upd”+”_before/after”命名
规则1:物化视图以“mv_”+“表名[_表名]”命名
规则1:临时表以“tmp_”开头,后接功能描述
规则2:如果是在上线/割接中被重命名的表,命名应是原表名+“_YYYYMMDD”
规则1:数据库用户名以字母开头,字母和数字混合且长度不超过8个字符,同时,密码必须包含小写字母,大写字母,数字,特殊字符四种组合且不少于8位
如下语句不符合规范(用户名以数字开头且超过8位,密码只有小写字母且不足8位)
CREATE USER 12345guoyue identified by guoyue;
如下语句符合规范
CREATE USER guoyue IDENTIFIED BY Oracle123456&8(;
规则1:数据库设计文档中,必须包含表数据保留时间;
规则2:数据库设计文档中,必须包含表在最大保留时间下的数据量;
规则3:数据库设计文档中,如果表为分区表,必须包含分区条件;
规则4:数据库设计文档中,必须包含表的读写频率;
规则5:单SEGMENT (如单个普通表,分区表的单个分区,单个普通索引,分区索引的单个分区)原则上不得超过2GB大小;
规则6:和其他表有关联的表,和其他表功能一致的字段类型以及长度,尽量使用相同的列名;
规则7:禁止依靠设计数据库表之间的主外键关系来保证数据一致性;??
规则8:需要UPDATE的字段,不得设计为分区条件字段;
建议1:对于需要同步到数据仓库的表,原则上必须包含同步频率以及同步机制;
建议2:原则上每个表应设计一个主键;
建议3:原则上不建议使用大对象类型(CLOB,BLOB,LOGN)等类型字段,如需设计这些字段,需有特别说明;
建议4:如无特别需要,原则上,字符类型选择变长字段,数字类型选择NUMBER;
建议5:如无特别需要,原则上不得设定表的并发度,压缩等属性;
建议6:对于易混淆的字段,建议加上备注;
规则1:无特别说明,每个表的索引,不得超过5个;
规则2:单字段上的索引不得超过2个;(即一个单字段最多可在上面建立一个单字段索引和一个组合索引包含这个字段)
规则3:复合索引原则上不得超过3个字段;
规则4:原则上,分区表的索引必须是分区索引;
建议1:频繁出现在where字句里的字段建议建立索引;
建议2:用来和其他表关联的字段建议建立索引;
建议3:索引字段建议有高的选择性和过滤性(count(distinctid)/count(*)>0.6);
建议4:对于枚举值较少的字段,建议不要创建B-tree索引,建议建立bitmap索引;
建议5:在where子句里作为函数参数的字段,不能创建索引,不建议建立函数索引;
建议6:建立索引的时候,建议考虑到SELECT和INSERT,UPDATE,DELETE的平衡;
建议7:一般建议在查询数据量10%以下使用索引;
建议8:WHERE子句的查询条件构成索引字段前导字段;
建议9:选择性更高的字段放在组合字段索引的前导字段;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。