精华内容
下载资源
问答
  • 1.设计原则 1) 标准化和规范化 数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF 标准的...
  • 对于MYSQL 数据库的命名设计,需要一定的规范,所以我们要了解和快速的掌握MYSQL,那就跟爱站技术小编来详细了解下这篇MYSQL 数据库命名以及设计规范,对你一定有所帮助喔。 1.设计原则 1) 标准化和规范化 数据的...

    对于MYSQL 数据库的命名与设计,需要一定的规范,所以我们要了解和快速的掌握MYSQL,那就跟爱站技术小编来详细了解下这篇MYSQL 数据库命名以及设计规范,对你一定有所帮助喔。

    1.设计原则
    1) 标准化和规范化

    数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF 标准的数据库的表设计原则是:“One Fact in One Place”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据。
    举例:某个存放客户及其有关定单的3NF 数据库就可能有两个表:Customer和Order。Order表不包含定单关联客户的任何信息,但表内会存放一个键值,该键指向Customer表里包含该客户信息的那一行。
    事实上,为了效率的缘故,对表不进行标准化有时也是必要的。
    2) 数据驱动
    采用数据驱动而非硬编码的方式,许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性。
    举例,假如用户界面要访问外部数据源(文件、XML 文档、其他数据库等),不妨把相应的连接和路径信息存储在用户界面支持表里。还有,如果用户界面执行工作流之类的任务(发送邮件、打印信笺、修改记录状态等),那么产生工作流的数据也可以存放在数据库里。角色权限管理也可以通过数据驱动来完成。事实上,如果过程是数据驱动的,你就可以把相当大的责任推给用户,由用户来维护自己的工作流过程。
    3) 考虑各种变化
    在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。
    举例,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓等)。所以,在建立系统存储客户信息时,在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化。
    2.数据库涉及字符规范
    采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线'_'组成,共63个字符.不能出现其他字符(注释除外).
    注意事项:
    1) 以上命名都不得超过30个字符的系统限制.变量名的长度限制为29(不包括标识字符@).
    2) 数据对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对象名的字符之间留空格.
    3) 小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突
    5) 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性.假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了.
    3.数据库命名规范
    数据库,数据表一律使用前缀
    正式数据库名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.比如:
    web_19floor_net
    web_car
    备份数据库名使用正式库名加上备份时间组成,如:
    web_19floor_net_20070403
    web_car_20070403
    4.数据库表命名规范
    数据表名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.
    相关应用的数据表使用同一前缀,如论坛的表使用cdb_前缀,博客的数据表使用supe_前缀,前缀名称一般不超过5字
    比如:
    web_user
    web_group
    supe_userspace
    备份数据表名使用正式表名加上备份时间组成,如:
    web_user_20070403
    web_group_20070403
    supe_userspace_20070403
    5.字段命名规范
    字段名称使用单词组合完成,首字母小写,后面单词的首字母大写,最好是带表名前缀.
    如 web_user 表的字段:
    userId
    userName
    userPassword
    表与表之间的相关联字段要用统一名称,
    如 web_user 表里面的 userId 和 web_group 表里面的 userId 相对应
    6.字段类型规范
    规则:用尽量少的存储空间来存数一个字段的数据.
    比如能用int的就不用char或者varchar
    能用tinyint的就不用int
    能用varchar(20)的就不用varchar(255)
    时间戳字段尽量用int型,如created:表示从'1970-01-01 08:00:00′开始的int秒数,采用英文单词的过去式;gmtCreated:表示datetime类型的时间,即形如'1980-01-01 00:00:00′的时间串,Java中对应的类型为Timestamp
    7.数据库设计文档规范
    所有数据库设计要写成文档,文档以模块化形式表达.大致格式如下:
    ‘——————————————-
    ‘ 表名: web_user
    ‘ 作者: Aeolus(傻鱼)
    ‘ 日期: 2007-04-11
    ‘ 版本: 1.0
    ‘ 描述: 保存用户资料
    ‘ 具体内容:
    ‘ UserID int,自动增量 用户代码
    ‘ UserName char(12) 用户名字
    ‘ ……
    ‘——————————————–
    8.索引使用原则:
    1) 逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引.考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写.
    2) 大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上.
    3) 不要索引blob/text等字段,不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间.
    4) 不要索引常用的小型表
    不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了.对这些插入和删除操作的索引维护可能比扫描表空间消耗更多的时间.
    9.sql语句规范
    所有sql关键词全部大写,比如SELECT,UPDATE,FROM,ORDER,BY等,所有的表名和库名都要用“包含
    如:
    SELECT COUNT(*) FROM `cdb_members` WHERE `userName` = ‘aeolus';
    10.其他设计技巧
    1) 避免使用触发器
    触发器的功能通常可以用其他方式实现.在调试程序时触发器可能成为干扰.假如你确实需要采用触发器,你最好集中对它文档化.
    2) 使用常用英语(或者其他任何语言)而不要使用编码或者拼音首字母缩写
    在创建下拉菜单、列表、报表时最好按照英语名排序.假如需要编码或者拼音首字母缩写,可以在旁边附上用户知道的英语.
    3) 保存常用信息
    让一个表专门存放一般数据库信息非常有用.在这个表里存放数据库当前版本、最近检查/修复(对Access)、关联设计文档的名称、客户等信息.这样可以实现一种简单机制跟踪数据库,当客户抱怨他们的数据库没有达到希望的要求而与你联系时,这样做对非客户机/服务器环境特别有用.
    4) 包含版本机制
    在数据库中引入版本控制机制来确定使用中的数据库的版本.时间一长,用户的需求总是会改变的.最终可能会要求修改数据库结构.把版本信息直接存放到数据库中更为方便.
    5) 编制文档
    对所有的快捷方式、命名规范、限制和函数都要编制文档.
    采用给表、列、触发器等加注释的数据库工具.对开发、支持和跟踪修改非常有用.
    对数据库文档化,或者在数据库自身的内部或者单独建立文档.这样,当过了一年多时间后再回过头来做第2 个版本,犯错的机会将大大减少。
    6) 测试、测试、反复测试
    建立或者修订数据库之后,必须用用户新输入的数据测试数据字段.最重要的是,让用户进行测试并且同用户一道保证选择的数据类型满足商业要求.测试需要在把新数据库投入实际服务之前完成。
    7) 检查设计
    在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库.换句话说,针对每一种最终表达数据的原型应用,保证你检查了数据模型并且查看如何取出数据。

    展开全文
  • MYSQL数据库命名与设计

    万次阅读 2015-10-31 15:17:52
    你是否对获得MYSQL数据库命名与其设计规范 的实际操作感到十分头疼?如果是这样子的话,以下的文章将会给你相应的解决方案,以下的文章主要是介绍获得MYSQL数据库命名与其设计规范 的方案,以下就是相关内容的具体...

    你是否对获得MYSQL数据库命名与其设计规范 的实际操作感到十分头疼?如果是这样子的话,以下的文章将会给你相应的解决方案,以下的文章主要是介绍获得MYSQL数据库命名与其设计规范 的方案,以下就是相关内容的具体描述。

      1) 标准化和规范化

      数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF 标准的数据库的表设计原则是:

      “One Fact in One Place”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据。

      举例:某个存放客户及其有关定单的3NF 数据库就可能有两个表:Customer和Order。Order表不包含定单关联客户的任何信息,但表内会存放一个键值,该键指向Customer表里包含该客户信息的那一行。

      事实上,为了效率的缘故,对表不进行标准化有时也是必要的。

      2) 数据驱动

      采用数据驱动而非硬编码的方式,许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性。

      举例,假如用户界面要访问外部数据源(文件、XML 文档、其他数据库等),不妨把相应的连接和路径信息存储在用户界面支持表里。还有,如果用户界面执行工作流之类的任务(发送邮件、打印信笺、修改记录状态等),那么产生工作流的数据也可以存放在数据库里。角色权限管理也可以通过数据驱动来完成。事实上,如果过程是数据驱动的,你就可以把相当大的责任推给用户,由用户来维护自己的工作流过程。

      3) 考虑各种变化

      在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。

      举例,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓等)。所以,在建立系统存储客户信息时,在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化。

      2.数据库涉及字符规范

      采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线'_'组成,共63个字符.不能出现其他字符(注释除外).

      注意事项:

      1) 以上MYSQL数据库命名都不得超过30个字符的系统限制.变量名的长度限制为29(不包括标识字符@).

      2) 数据对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对象名的字符之间留空格.

      3) 小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突

      5) 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性.假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了.

      3.数据库MYSQL数据库命名规范

      数据库,数据表一律使用前缀

      正式数据库名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.比如:

      web_19floor_net  web_car

      备份数据库名使用正式库名加上备份时间组成,如:

      web_19floor_net_20070403  web_car_20070403

      4.数据库表MYSQL数据库命名规范

      数据表名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.

      相关应用的数据表使用同一前缀,如论坛的表使用cdb_前缀,博客的数据表使用supe_前缀,前缀名称一般不超过5字

      比如:

      web_user  web_group  supe_userspace

      备份数据表名使用正式表名加上备份时间组成,如:

      web_user_20070403  web_group_20070403  supe_userspace_20070403

      5.字段MYSQL数据库命名规范

      字段名称使用单词组合完成,首字母小写,后面单词的首字母大写,最好是带表名前缀.

      如 web_user 表的字段:

      userId  userName  userPassword

      表与表之间的相关联字段要用统一名称,

      如 web_user 表里面的 userId 和 web_group 表里面的 userId 相对应

      6.字段类型规范

      规则:用尽量少的存储空间来存数一个字段的数据.

      比如能用int的就不用char或者varchar

      能用tinyint的就不用int

      能用varchar(20)的就不用varchar(255)

      时间戳字段尽量用int型,如created:表示从'1970-01-01 08:00:00'开始的int秒数,采用英文单词的过去式;gmtCreated:表示datetime类型的时间,即形如'1980-01-01 00:00:00'的时间串,Java中对应的类型为Timestamp

      7.数据库设计文档规范

      所有数据库设计要写成文档,文档以模块化形式表达.大致格式如下:

      '-------------------------------------------

      ' 表名: web_user

      ' 作者: Aeolus(傻鱼)

      ' 日期: 2007-04-11

      ' 版本: 1.0

      ' 描述: 保存用户资料

      ' 具体内容:

      ' UserID int,自动增量 用户代码

      ' UserName char(12) 用户名字

      ' ......

      '--------------------------------------------

    8.索引使用原则:

      1) 逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引.考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写.

      2) 大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上.

      3) 不要索引blob/text等字段,不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间.

      4) 不要索引常用的小型表

      不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了.对这些插入和删除操作的索引维护可能比扫描表空间消耗更多的时间.

      9.sql语句规范

      所有sql关键词全部大写,比如SELECT,UPDATE,FROM,ORDER,BY等,所有的表名和库名都要用``包含

      如:

      SELECT COUNT(*) FROM `cdb_members` WHERE `userName` = 'aeolus';

      10.其他设计技巧

      1) 避免使用触发器

      触发器的功能通常可以用其他方式实现.在调试程序时触发器可能成为干扰.假如你确实需要采用触发器,你最好集中对它文档化.

      2) 使用常用英语(或者其他任何语言)而不要使用编码或者拼音首字母缩写

      在创建下拉菜单、列表、报表时最好按照英语名排序.假如需要编码或者拼音首字母缩写,可以在旁边附上用户知道的英语.

      3) 保存常用信息

      让一个表专门存放一般数据库信息非常有用.在这个表里存放数据库当前版本、最近检查/修复(对Access)、关联设计文档的名称、客户等信息.这样可以实现一种简单机制跟踪数据库,当客户抱怨他们的数据库没有达到希望的要求而与你联系时,这样做对非客户机/服务器环境特别有用.

      4) 包含版本机制

      在数据库中引入版本控制机制来确定使用中的数据库的版本.时间一长,用户的需求总是会改变的.最终可能会要求修改数据库结构.把版本信息直接存放到数据库中更为方便.

      5) 编制文档

      对所有的快捷方式、MYSQL数据库命名规范、限制和函数都要编制文档.

      采用给表、列、触发器等加注释的数据库工具.对开发、支持和跟踪修改非常有用.

      对数据库文档化,或者在数据库自身的内部或者单独建立文档.这样,当过了一年多时间后再回过头来做第2 个版本,犯错的机会将大大减少.

      6) 测试测试、反复测试

      建立或者修订数据库之后,必须用用户新输入的数据测试数据字段.最重要的是,让用户进行测试并且同用户一道保证选择的数据类型满足商业要求.测试需要在把新数据库投入实际服务之前完成.

      7) 检查设计

      在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库.换句话说,针对每一种最终表达数据的原型应用,保证你检查了数据模型并且查看如何取出数据.


    展开全文
  • 1、编写目的 使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。 2、适用范围 本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。 3、对象命名规范 3.1 ...

    1、编写目的

      使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。

      2、适用范围

      本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。

      3、对象命名规范

      3.1 数据库和SID

      数据库名定义为系统名+模块名

      ★ 全局数据库名和例程SID 名要求一致

      ★ 因SID 名只能包含字符和数字,所以全局数据库名和SID 名中不能含有“_”等字符

      3.2 表相关

      3.2.1 表空间

      ★ 面向用户的专用数据表空间以用户名+_+data命名 ,如Aud 用户专用数据表空间可命名为Aud_data

      ★ 面向用户的专用索引表空间以用户名+_+idx命名

      ★ 面向用户的专用临时表空间以用户名+_+tmp命名

      ★ 面向用户的专用回滚段表空间以用户名+_+rbs 命名

      ★ 面向应用的表空间以应用名+_data/应用名+_idx/应用名+_tmp/应用名+_rbs 命名

      ★ LOB 段数据专用表空间以其数据表空间+_+lobs 命名,如上例中数据表空间为Aud_data,则LOB 段表空间可命名为Aud_data_lobs

      3.2.2 表空间文件

      表空间文件命名以表空间名+两位数序号(序号从01开始)组成,如Aud_data01 等

      3.2.3 表

      表命名要遵循以下原则:

      ★ 一般表采用“系统名+t_+模块名+_+表义名” 格式构成

      ★ 若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成

      ★ 模块名或表义名均以其汉语拼音的首字符命名,表义名中汉语拼音均采用小写,且字符间不加分割符;

      ★ 表别名命名规则:取表义名的前3 个字符加最后一个字符。如果存在冲突,适当增加字符(如取表义名的前4 个字符加最后一个字符等)

      ★ 临时表采用“系统名+t_tmp_+表义名” 格式构成

      ★ 表的命名如

      dft_gy_cbap:系统名(电费 df)+t_+模块名(高压 gy)+_+表义名(抄表安排 cbap) dft_cbbj: 系统名(电费 df)+t_+表义名(抄表标记 cbbj) dft_tmp_hj: 系统名(电费 df)+tmp+表义名(合计hj)(此处为临时表) ★ 关联表命名为Re_表A_表B,Re 是Relative的缩写,表A 和表B均采用其表义名或缩写形式。

      3.2.4 属性(列或字段)

      属性命名遵循以下原则:

      ★ 采用有意义的列名,为实际含义的汉语拼音的首字符,且字符间不加任何分割符

      ★ 属性名前不要加表名等作为前缀

      ★ 属性后不加任何类型标识作为后缀

      ★ 不要使用“ID”作为列名

      ★ 关联字段命名以 “cd+_+关联表的表义名(或缩写)+_+字段名”进行

      3.2.5 主键

      ★ 任何表都必须定义主键

      ★ 表主键命名为:“pk+_+表名(或缩写)+_+主键标识”如“pk_YHXX_IDKH”等

      3.2.6 外键

      表外键命名为: “fk+_+表名(或缩写)+_主表名(或缩写)+_+主键标识”如“fk_YHLX_YHXX_SFZH”等

      3.2.7 CHECK约束

      CHECK 约束命名为: “chk+_+CHECK约束的列名(或缩写)”

      3.2.8 UNIQUE约束

      UNIQUE 约束命名为: “unq+_+UNIQUE约束的列名(或缩写)”

      3.2.9 索引

      索引的命名为:“表名(或缩写)+_+列名+_idx”。其中多单词组成的属性列列名取前几个单词首字符再加末单词首字符组成如yd_kh 表khid 上的index: yd_kh_khid_idx

      3.2.10 触发器

      ★ AFTER型触发器

      系统名+tr_+<表名>_+ +[_row]

      ★ BEFORE型触发器

      系统名+tr_+<表名>_+bef_ +[_row]

      ★ INSTEAD OF型触发器

      系统名+ti_+<表名>+_+ +[_row]

      ★ 各种类型的触发器中

      i,u,d 分别表示insert、update 和delete行级触发器,后加_row 标识,语句级触发器不加,如 yddftr_CSH_i_row

      3.2.11 簇

      簇以簇中要存储的各个表(或表别名)及表间加and的组成 命名,即表“A+And+表B…”,如存储GR(工人)和GRJN(工人技能)表的簇命名为GRAndGRJN

      3.3 视图

      视图命名以系统名v_+模块名作为前缀,其他命名规则和表的命名类似

      3.4 序列

      序列命名以seq_+含义名组成

      3.5 同义词

      同义词命名与其基础对象的名称一致,但要去除其用户前缀或含有远程数据库链接的后缀

      3.6 存储对象相关

      3.6.1 存储过程

      存储过程命名由“系统名+sp+_+存储过程标识(缩写)”组成存储过程标识要以实际含义的汉语拼音的首字符构成,并用下划线分割各个组成部分。如增加代理商的帐户的存储过程为“sfsp_ZJDLSZH”。

      3.6.2 函数

      函数命名由“系统名+f+_+函数标识”组成

      3.6.3 包

      包命名由“系统名+pkg+_+包标识”组成

      3.6.4 函数文本中的变量采用下列格式命名:

      ★ 参数变量命名采用“i (o或io)+_+名称”形式,前缀i 或o 表输入还是输出参数

      ★ 过程变量命名采用“l+_+名称”形式

      ★ 全局包变量命名采用“g+_+名称”形式

      ★ 游标变量命名采用“名称+_+cur”形式

      ★ 常量型变量命名采用“c+_+名称”形式

      ★ 变量名采用小写,若属于词组形式,用下划线分隔每个单词

      ★ 变量用来存放表中的列或行数据值时,使用%TYPE、%ROWTYPE 方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化

      3.7 用户及角色

      ★ 用户命名由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成

      ★ 角色命名由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成

      3.8 数据库链接

      ★ 数据库链接命名由“远程服务器名+_+数据库名+_+link”组成

      ★ 若远程服务器名和数据库名一致,上式“_+数据库名”部分省去

      3.9 命名中的其它注意事项

      ★ 命名都不得超过30个字符。

      ★ 不要在对象名的字符之间留空格

      ★ 小心保留词,要保证你的命名没有和保留词、数据库系统或者常用访问方法冲突 4、 编码规范

      4.1 一般性注释

      4.1.1 注释尽可能简洁、详细而全面

      4.1.2 创建每一数据库对象时都要加上COMMENT ON注释,以说明该对象的功能和用途;建表时,对某些数据列也要加上COMMENT ON注释,以说明该列和/或列取值的含义。如:XX 表中有CZZT列属性为NUMBER(10, 0)可加COMMENT ON 注释如下COMMENT ON COLUMN XX.CZZT IS '0 = 正常, 1 = 等待, 2 = 超时, 3 = 登出'

      4.1.3 注释语法包含两种情况:单行注释、多行注释

      单行注释:注释前有两个连字符(--),一般对变量、条件子句可以采用该类注释。

      多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。

      4.2 函数文本注释

      4.2.1 在每一个块和过程(存储过程、函数、包、触发器、视图等)的开头放置注释 /************************************************* *********************** *name : --函数名 *function : --函数功能 *input : --输入参数 *output : --输出参数 *author : --作者 *CreateDate : --创建时间 *UpdateDate : --函数更改信息(包括作者、时间、更改内容等) ************************************************** ***********************/ CREATE [OR REPLACE] PROCEDURE dfsp_xxx … 4.2.2 传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。

      4.2.3 在每一个变量声明的旁边添加注释。说

      明该变量要用作什么

      通常,简单使用单行注释就行了,例如l_sfzh CHAR(11) --身份证号码

      4.2.4 在块的每个主要部分之前添加注释

      在块的每个主要部分之前增加注释,解释下—组语句目的,最好是说明该段语句及算法的目的以及要得到的结果,但不要对其细节进行过多的描述

      4.2.5 在块和过程的开头注释中还可以增加要访问的数据库等信息

      4.3 常用SQL 语句的编写规范

      4.3.1 CREATE语句 4.3.2 SELECT语句 查询语句采用以下原则编写(可最大化重用共享池中的SQL 语句,提高应用程序性能):

      ★ 将SELECT 语句分为5部分:

      (1) 由SELECT 开头,后跟一个显示查询结果的列表;

      (2) 由FROM 开头,后跟一个或多个获取数据所涉及的表;

      (3) 由WHERE 开头,后跟一个或多个确定所需值的条件;

      (4) 由GROUP BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总;

      (5) 由ORDER BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序。

      ★ 每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐,如 ★ 关键字用大写,列名和表名采用小写

      ★ 语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行

      ★ 当语句的同一部分要延续到下一行时,按下列格式排列: ★ 将语句中WHERE 和AND 部分格式化,书写布局类似于 ★ 当语句中出现括号时,括号的两边不留空格

      ★ 在SQL 语句使用运算符时,操作两边应各留一个空格,如 4.3.3 INSERT语句 4.3.4 UPDATE语句 4.3.5 DELETE语句 4.4 条件执行语句(IF)编写规范

      条件执行语句IF…ELSE 按以下格式编写 (1) 在IF…THEN和ELSE(或ELSIF)及ELSE…THEN和END IF间可包含一条或多条PL/SQL

      语句,而不需要加BEGIN 和END

      (2) IF…ELSE…ENDIF 语句可以嵌套

      (3) 注意ELSIF的写法

      4.5 循环语句编写规范

      4.5.1 简单循环语句

      4.5.2 FOR循环语句

      FOR 变量 IN [变量取值范围] 4.5.3 WHILE循环语句

      WHILE <条件表达式> 4.6 函数文本(存储过程、函数和包等)

      ★ 对于存储过程、函数等程序块都要有异常处理部分,在异常部分的最后都要设置OTHERS异常情态处理器,以提高程序的自检能力,格式如下: ★ 对于子程序、触发器、包等带名的程序块,要使用结束标识,如 CREATE OR REPLACE PROCEDURE XXXsp_XXX IS … BEGIN … END XXXsp_XXX;/* 此处的过程名XXXsp_XXX是可选的,规范要求写上,与块开始的CREATE相对应 */

    展开全文
  • 1、编写目的 使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。 2、适用范围 本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。 3、对象命名规范 3.1 ...

    1、编写目的

    使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。

    2、适用范围

    本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。

    3、对象命名规范

    3.1 数据库和SID

    数据库名定义为系统名+模块名

    ★ 全局数据库名和例程SID 名要求一致

    ★ 因SID 名只能包含字符和数字,所以全局数据库名和SID 名中不能含有“_”等字符

    3.2 表相关

    3.2.1 表空间

    ★ 面向用户的专用数据表空间以用户名+_+data命名 ,如Aud 用户专用数据表空间可命名为Aud_data

    ★ 面向用户的专用索引表空间以用户名+_+idx命名

    ★ 面向用户的专用临时表空间以用户名+_+tmp命名

    ★ 面向用户的专用回滚段表空间以用户名+_+rbs 命名

    ★ 面向应用的表空间以应用名+_data/应用名+_idx/应用名+_tmp/应用名+_rbs 命名

    ★ LOB 段数据专用表空间以其数据表空间+_+lobs 命名,如上例中数据表空间为Aud_data,则LOB 段表空间可命名为Aud_data_lobs

    3.2.2 表空间文件

    表空间文件命名以表空间名+两位数序号(序号从01开始)组成,如Aud_data01 等

    3.2.3 表

    表命名要遵循以下原则:

    ★ 一般表采用“系统名+t_+模块名+_+表义名” 格式构成

    ★ 若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成

    ★ 模块名或表义名均以其汉语拼音的首字符命名,表义名中汉语拼音均采用小写,且字符间不加分割符;

    ★ 表别名命名规则:取表义名的前3 个字符加最后一个字符。如果存在冲突,适当增加字符(如取表义名的前4 个字符加最后一个字符等)

    ★ 临时表采用“系统名+t_tmp_+表义名” 格式构成

    ★ 表的命名如

     

    dft_gy_cbap:系统名(电费 df)+t_+模块名(高压 gy)+_+表义名(抄表安排 cbap) 

    dft_cbbj: 系统名(电费 df)+t_+表义名(抄表标记 cbbj)

    dft_tmp_hj: 系统名(电费 df)+tmp+表义名(合计hj)(此处为临时表)

    ★ 关联表命名为Re_表A_表B,Re 是Relative的缩写,表A 和表B均采用其表义名或缩写形式。

    3.2.4 属性(列或字段)

    属性命名遵循以下原则:

    ★ 采用有意义的列名,为实际含义的汉语拼音的首字符,且字符间不加任何分割符

    ★ 属性名前不要加表名等作为前缀

    ★ 属性后不加任何类型标识作为后缀

    ★ 不要使用“ID”作为列名

    ★ 关联字段命名以 “cd+_+关联表的表义名(或缩写)+_+字段名”进行

    3.2.5 主键

    ★ 任何表都必须定义主键

    ★ 表主键命名为:“pk+_+表名(或缩写)+_+主键标识”如“pk_YHXX_IDKH”等

    3.2.6 外键

    表外键命名为: “fk+_+表名(或缩写)+_主表名(或缩写)+_+主键标识”如“fk_YHLX_YHXX_SFZH”等

    3.2.7 CHECK约束

    CHECK 约束命名为: “chk+_+CHECK约束的列名(或缩写)”

    3.2.8 UNIQUE约束

    UNIQUE 约束命名为: “unq+_+UNIQUE约束的列名(或缩写)”

    3.2.9 索引

    索引的命名为:“表名(或缩写)+_+列名+_idx”。其中多单词组成的属性列列名取前几个单词首字符再加末单词首字符组成如yd_kh 表khid 上的index: yd_kh_khid_idx

    3.2.10 触发器

    ★ AFTER型触发器

    系统名+tr_+<表名>_+ +[_row]

    ★ BEFORE型触发器

    系统名+tr_+<表名>_+bef_+[_row]

    ★ INSTEAD OF型触发器

    系统名+ti_+<表名>+_++[_row]

    ★ 各种类型的触发器中

    i,u,d 分别表示insert、update 和delete行级触发器,后加_row 标识,语句级触发器不加,如 yddftr_CSH_i_row

    3.2.11 簇

    簇以簇中要存储的各个表(或表别名)及表间加and的组成 命名,即表“A+And+表B…”,如存储GR(工人)和GRJN(工人技能)表的簇命名为GRAndGRJN

    3.3 视图

    视图命名以系统名v_+模块名作为前缀,其他命名规则和表的命名类似

    3.4 序列

    序列命名以seq_+含义名组成

    3.5 同义词

    同义词命名与其基础对象的名称一致,但要去除其用户前缀或含有远程数据库链接的后缀

    3.6 存储对象相关

    3.6.1 存储过程

    存储过程命名由“系统名+sp+_+存储过程标识(缩写)”组成存储过程标识要以实际含义的汉语拼音的首字符构成,并用下划线分割各个组成部分。如增加代理商的帐户的存储过程为“sfsp_ZJDLSZH”。

    3.6.2 函数

    函数命名由“系统名+f+_+函数标识”组成

    3.6.3 包

    包命名由“系统名+pkg+_+包标识”组成

    3.6.4 函数文本中的变量采用下列格式命名:

    ★ 参数变量命名采用“i (o或io)+_+名称”形式,前缀i 或o 表输入还是输出参数

    ★ 过程变量命名采用“l+_+名称”形式

    ★ 全局包变量命名采用“g+_+名称”形式

    ★ 游标变量命名采用“名称+_+cur”形式

    ★ 常量型变量命名采用“c+_+名称”形式

    ★ 变量名采用小写,若属于词组形式,用下划线分隔每个单词

    ★ 变量用来存放表中的列或行数据值时,使用%TYPE、%ROWTYPE 方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化

    3.7 用户及角色

    ★ 用户命名由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成

    ★ 角色命名由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成

    3.8 数据库链接

    ★ 数据库链接命名由“远程服务器名+_+数据库名+_+link”组成

    ★ 若远程服务器名和数据库名一致,上式“_+数据库名”部分省去

    3.9 命名中的其它注意事项

    ★ 命名都不得超过30个字符。

    ★ 不要在对象名的字符之间留空格

    ★ 小心保留词,要保证你的命名没有和保留词、数据库系统或者常用访问方法冲突

     

    4、 编码规范

    4.1 一般性注释

    4.1.1 注释尽可能简洁、详细而全面

    4.1.2 创建每一数据库对象时都要加上COMMENT ON注释,以说明该对象的功能和用途;建表时,对某些数据列也要加上COMMENT ON注释,以说明该列和/或列取值的含义。如:XX 表中有CZZT列属性为NUMBER(10, 0)可加COMMENT ON 注释如下COMMENT ON COLUMN XX.CZZT IS '0 = 正常, 1 = 等待, 2 = 超时, 3 = 登出'

    4.1.3 注释语法包含两种情况:单行注释、多行注释

    单行注释:注释前有两个连字符(--),一般对变量、条件子句可以采用该类注释。

    多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。

    4.2 函数文本注释

    4.2.1 在每一个块和过程(存储过程、函数、包、触发器、视图等)的开头放置注释

     

    /************************************************************************ 

    *name : --函数名

    *function : --函数功能

    *input : --输入参数

    *output : --输出参数

    *author : --作者

    *CreateDate : --创建时间

    *UpdateDate : --函数更改信息(包括作者、时间、更改内容等)

    *************************************************************************/

    CREATE [OR REPLACE] PROCEDURE dfsp_xxx


    4.2.2 传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。

    4.2.3 在每一个变量声明的旁边添加注释。说明该变量要用作什么

    通常,简单使用单行注释就行了,例如l_sfzh CHAR(11) --身份证号码

    4.2.4 在块的每个主要部分之前添加注释

    在块的每个主要部分之前增加注释,解释下—组语句目的,最好是说明该段语句及算法的目的以及要得到的结果,但不要对其细节进行过多的描述

    4.2.5 在块和过程的开头注释中还可以增加要访问的数据库等信息

    4.3 常用SQL 语句的编写规范

    4.3.1 CREATE语句

     

    CREATE TABLE dft_dksz(

    YHBS VARCHAR2(20) NOT NULL,

    ZHGX DATE,

    DKKHD VARCHAR2(24),

    CONSTRAINT pk_dksz_yhbs PRIMARY KEY (YHBS)

    )

    4.3.2 SELECT语句

    查询语句采用以下原则编写(可最大化重用共享池中的SQL 语句,提高应用程序性能):

    ★ 将SELECT 语句分为5部分:

    (1) 由SELECT 开头,后跟一个显示查询结果的列表;

    (2) 由FROM 开头,后跟一个或多个获取数据所涉及的表;

    (3) 由WHERE 开头,后跟一个或多个确定所需值的条件;

    (4) 由GROUP BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总;

    (5) 由ORDER BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序。

    ★ 每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐,如

     

    SELECT col1, col2, col3 

    FROM table1

    WHERE col1 > col2

    GROUP BY col1, col2

    ORDER BY col1;

    ★ 关键字用大写,列名和表名采用小写

    ★ 语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行

    ★ 当语句的同一部分要延续到下一行时,按下列格式排列:

     

    SELECT col1, col2, col3, col4, col5, col6, 

    col7, col8, col9, col10


     ★ 将语句中WHERE 和AND 部分格式化,书写布局类似于

     

    WHERE 

    AND

    AND

    ★ 当语句中出现括号时,括号的两边不留空格

    ★ 在SQL 语句使用运算符时,操作两边应各留一个空格,如

     

    WHERE X = Y 

    AND A = B

    AND C = D

    4.3.3 INSERT语句

     

    INSERT INTO <要插入的表名> 

    (<列1>, <列2>, .., <列n-1>, <列n>)

    VALUES (<列1值>, <列2值>, .., <列n-1值>, <列n值>)

    4.3.4 UPDATE语句

     

    UPDATE <要更新的表名> 

    SET <要更新的列> = <列值>

    4.3.5 DELETE语句

     

    DELETE FROM table1 

    WHERE col1 = '???'

    4.4 条件执行语句(IF)编写规范

    条件执行语句IF…ELSE 按以下格式编写

     

    IF <条件表达式> 

    THEN

    <一条或多条语句>

    [ELSE (或ELSIF<条件表达式>)

    THEN

    <一条或多条语句>

    END IF;

     

    注:

    (1) 在IF…THEN和ELSE(或ELSIF)及ELSE…THEN和END IF间可包含一条或多条PL/SQL

    语句,而不需要加BEGIN 和END

    (2) IF…ELSE…ENDIF 语句可以嵌套

    (3) 注意ELSIF的写法

    4.5 循环语句编写规范

    4.5.1 简单循环语句

     

    LOOP 

    <零条或多条语句>

    EXIT WHEN <条件表达式>

    <零条或多条语句>

    END LOOP;

    4.5.2 FOR循环语句

    FOR 变量 IN [变量取值范围]

     

    LOOP 

    <一条或多条语句>

    END LOOP;

    4.5.3 WHILE循环语句

    WHILE <条件表达式>

     

    LOOP 

    <一条或多条语句>

    END LOOP;

    4.6 函数文本(存储过程、函数和包等)

    ★ 对于存储过程、函数等程序块都要有异常处理部分,在异常部分的最后都要设置OTHERS异常情态处理器,以提高程序的自检能力,格式如下:

     

    BEGIN 



    EXCEPTION

    WHEN excep—name1 THEN



    WHEN excep—name2 THEN



    WHEN OTHERS THEN



    END;

    ★ 对于子程序、触发器、包等带名的程序块,要使用结束标识,如

     

    CREATE OR REPLACE PROCEDURE XXXsp_XXX IS 



    BEGIN



    END XXXsp_XXX;

    /* 此处的过程名XXXsp_XXX是可选的,规范要求写上,与块开始的CREATE相对应 */
    展开全文
  • 1、编写目的 使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。 2、适用范围 本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。 3、对象命名规范 3.1 ...
  • MySql命名与设计规范

    2013-12-29 10:54:33
    1) 标准化和规范化 数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF 标准数据库的表...
  • 中兴C#编程规范数据库的编程规范。本规范的内容包括:基本原则、布局、注释、命名规则、声名、表达式语句、类接口等。规范最后给出了标准模版供软件人员参考。
  • 数据库开发规范

    千次阅读 2013-04-15 17:44:42
    1. 目的本文档旨在为数据库设计提供一种公共标准,基于这种标准数据库设计,能够在保证性能的基础上,兼顾管理维护的成本,同时,标准化的设计也有益于代码交流,降低因为不同人员的设计网络导致的的代码兼容...
  • 规范村庄规划数据库建设,统一全市村庄空间规划的工作成果数据格式,根据《中 国土地管理法》等法律、法规,依据《北京市村庄规划导则》、《北京市城乡 规划计算机辅助制图标准》等相关标准规范,结合《北京...
  • 三调数据库标准和输出表格

    千次阅读 2020-05-10 21:21:52
    土地利用数据库标准 Standard For Land Use Database 20XX-XX-XX 发布 20XX-XX-XX 实施 中华人民共和国国土资源部发布 f 前 言 II 引 言 III 1范围 1 2规范性引用文件 1 3术语和定义 1 4数据库内容和要素分类编码 ,2...
  • 窗体以试验标准的试验特征为主体,通常按若干范畴组织起来,而材料规范(产品规范和通用规范)的试验特征试验标准的相应的试验特征合并。 试验标准的依据包含所有相关标准的条款号,当“F3”键被按下时,各标准的...
  • 2019年5月自然资源部发布的《省级国土空间规划数据库标准(试行)》,目录如下:1 范围 1 2 规范性引用文件 1 3 术语和定义 1 4 数据库内容和要素分类编码 2 5 数学基础 4 6 数据库结构定义 4 7 数据交换文件命名规则 ...
  • 自然资源部于2019年5月发布的市县级国土空间总体规划数据库标准(试行),目录如下: 1 范围 1 2 规范性引用文件 1 3 术语和定义 1 4 数据库内容和要素分类编码 2 5 数学基础 4 6 数据库结构定义 4 7 数据交换...
  • 创建数据库对象的命名规范 创建数据库对象时,开发人员可以选择一种命名方法,可以选择遵循传统 IBM i 行为的系统命名模式 (*SYS),也可以选择遵循SQL 标准规则的 SQL 命名规范 (*SQL)。 DB2 for i 其他...
  • 图书管理系统毕业论 目录 一、序言 4 二、需求分析说明书 4 2.1系统介绍 4 2.2系统面向的用户群体 4 2.3系统的功能性需求 4 2.4系统的非功能性需求 5 ...7.2数据库命名标准与规范 10 7.3数据库逻辑设计 10 7.4数据库物

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 260
精华内容 104
关键字:

数据库命名标准与规范