Oracle的数据库设计规范建议.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle的数据库设计规范建议

Oracle数据库 1 数据对象的命名规范 1.1 通用规范 1.1.1 使用英文:要用简单明了的英文单词,不要用拼音,特别是拼音缩写。主要目的很明确,让人容易明白这个对象是做什么用的; 1.1.2 一律大写,特别是表名:有些数据库,表的命名乃至其他数据对象的命名是大小写敏感的,为了避免不必要的麻烦,并且尊重通常的习惯,最好一律用大写; 1.2 数据库对象命名规范 1.2.1 表的命名 1.2.1.1 表名的前缀:前缀_表名_T。为表的名称增加一个或者多个前缀,前缀名不要太长,可以用缩写,最好用下划线与后面的单词分开;其目的有这样几个: 1.2.1.1.1 为了不与其他项目或者其他系统、子系统的表重名; 1.2.1.1.2 表示某种从属关系,比如表明是属于某个子系统、某个模块或者某个项目等等。表示这种从属关系的一个主要目的是,从表名能够大概知道如何去找相关的人员。比如以子系统为前缀的,当看到这个表的时候,就知道有问题可以去找该子系统的开发和使用人员; 1.2.2 视图命名:相关表名_V(或者根据需要另取名字); 1.2.3 程序包命名:程序包名_PKG(用英文表达程序包意义); 1.2.4 存储过程命名:存储过程名_PRO(用英文表达存储过程意义); 1.2.5 函数命名:函数名称_FUN(用英文表达函数作用); 1.2.6 触发器命名:触发器名称_TRI(用英文表达触发器作用); 1.2.7 索引命名:表名_字段名_IDX(如果存在多字段索引,取每字段前三个字符加下划线组合,如在 custom, cutting, curtail 上建立联合索引,命名为 表名_cus_cut_cur_IDX,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如在 custid, custom,custname上建立联合索引,就命名为表_tid_tom_tna_IDX; 1.2.8 唯一索引命名:表名_字段名_UNI(如果存在多字段唯一索引,取每字段前三个字符加下划线组合,如在 custom, cutting, curtail上建立唯一索引,命名为 表名_ cus_cut_cur_UNI,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如:在 custid, custom,custname上建立唯一索引,命名:表_tid_tom_tna_UNI; 1.2.9 主键命名:表名_字段名_PK(如果存在多字段主键,取每字段前三个字符加下划线组合,如在 custom, cutting, curtail上建立主键,命名为 表名_cus_cut_cur_PK,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如在 custid, custom,custname上建立主键,命名:表_tid_tom_tna_PK; 1.2.10 外键命名:表名_主表名_字段名_FK; 1.2.11 Sequence 命名:表名_列名_SEQ(或者根据需要另取名字); 1.2.12 Synonym 命名:与对应的数据库对象同名; 1.2.12 JAVA 命名:遵守公司相应的JAVA命名规范; 2 SQL的设计和使用 2.1 Sql 书写规范 2.1.1 尽量不要写复杂的SQL:过于复杂的SQL可以用存储过程或函数来代替,效率更高;甚至如果能保证不造成瓶颈的话,把条SQL拆成多条也是可以的。这与一般的编码规范很相似的,首先是要易懂。易懂也就意味着容易维护,对较为复杂的sql语句加上注释,说明算法、功能注释风格:注释单独成行、放在语句前面。 2.1.2 应对不易理解的分支条件表达式加注释; 2.1.3 对重要的计算应说明其功能; 2.1.4 过长的函数实现,应将其语句按实现的功能分段加以概括性说明; 2.1.5 每条复杂SQL语句均应有注释说明(表名、字段名 主要是说明此句SQL执 行 的作用及所取得结果集的意义); 2.1.6 常量及变量注释时,应注释被保存值的含义(必须),合法取值的范围(可选__________) ; 2.1.7 可采用单行/多行注释。(-- 或 /* */ 方式,不同数据库可能语法不同); 2.1.8 连接符or、in、and、以及=、=、=等前后加上一个空格; 2.1.9 不要用SELECT *:SELECT语句中写出必要的要选择的全部列名,增强语句可读性,避免不必要的选择;SELECT * 增加了对所有字段的依赖,当表增加了字段后,有可能发生错误;此外还可能增加了数据的流量,查询了一些实际不需要的字段; 2.1.10 避免长事务(Transaction):长事务容易造成死锁,应该避免,单个事务使用的数据库和系统资源不宜超过总资源1-2%(参考值,各应用可以根据实际情况进行适

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档