数据库设计规范编码规范

合集下载

数据库编码规范

数据库编码规范

数据库编码规范V1.02022-8-28目的范围术语设计概要命名规范(逻辑对象)数据库对象命名脚本注释数据库操作原则常用字段命名(参考)1)目的为了统一公司软件开辟的设计过程中关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。

2)范围本规范合用于开辟组全体人员,作用于软件项目开辟的数据库设计、维护阶段<3)术语数据库对象:在数据库软件开辟中,数据库服务器端涉及的对象包括物理结构和逻辑结构的对象。

物理结构对象:是指设备管理元素,包括数据文件和事务日志文件的名称、大小、目录规划、所在的服务器计算极名称、镜像等,应该有具体的配置规划。

普通对数据库服务器物理设备的管理规程,在整个项目/产品的概要设计阶段予以规划。

逻辑结构对象:是指数据库对象的管理元素,包括数据库名称、表空间、表、字段/域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据库配置有关的设计以及数据库中其他特性处理相关的设计等。

4)设计概要设计环境<数据库:ORACLE9i、MSSQLSERVER2000 等,操作系统:LINUX7.1 以上版本,显示图形操作界面;RedHat9 以上版本WINDOWS2000SERVER 以上设计使用工具手使用PowerDesigner 做为数据库的设计工具,要求为主要字段做详尽说明。

对于SQLServer 尽量使用企业管理器对数据库进行设计,并且要求对表,字段编写详细的说明(这些将作为扩展属性存入SQLServer 中) 手通过PowerDesigner 定制word 格式报表,并导出word 文档,作为数据字典保存。

(PowerDesignerv10 才具有定制导出word 格式报表的功能)<对于SQLServer 一旦在企业管理器进行数据库设计时加入扩展属性,就可以通过编写简单的工具将数据字典导出。

4 编写数据库建数据库、建数据库对象、初始化数据脚本文件设计原则4 采用多数据文件手禁止使用过大的数据文件,unix 系统不大于2GB,window 系统不超过500MB$oracle 数据库中必须将索引建立在索引表空间里。

数据库设计规范与命名规则

数据库设计规范与命名规则

数据库设计规范、技巧与命名规范一、数据库设计过程数据库技术是信息资源管理最有效的手段。

数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。

数据库设计的各阶段:A、需求分析阶段:综合各个用户的应用需求(现实世界的需求)。

B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。

C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。

然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。

D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。

1. 需求分析阶段需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。

需求分析的重点:调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。

需求分析的方法:调查组织机构情况、各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。

常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。

分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。

自顶向下的结构化分析方法(Structured Analysis,简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。

数据流图表达了数据和处理过程的关系。

系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。

2. 概念结构设计阶段通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。

概念模型用于信息世界的建模。

概念模型不依赖于某一个DBMS支持的数据模型。

概念模型可以转换为计算机上某一DBMS 支持的特定数据模型。

主题数据库设计规则

主题数据库设计规则

主题数据库设计规则
主题数据库设计规则主要包括以下内容:
1. 规范化与反规范化:规范化的优点是减少数据冗余,节约存储空间,减少相应逻辑和物理的I/O次数,同时加快增、删、改的速度。

出于性能和方便管理的考虑,原则上表设计应满足第三范式,有时为了提高某些查询或应用的性能而可以破坏规范规则,即反规范化。

2. 数据表分类:数据表按照不同业务逻辑,分为不同的类别。

主要有以下类别:基本数据表、标准编码表、业务数据表、系统信息表、统计数据表、临时处理表和其他类型表。

3. 统一选择表字符集为utf8,表名必须有详细描述。

4. 一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。

以上内容仅供参考,如需更多信息,建议查阅数据库相关书籍或咨询数据库领域专业人士。

编码规范

编码规范

系统开发编码规范作者:日期:2011-5-29一、中英文对照以及简拼:二、Java源程序的编码规范1.命名:1)类名的定义:类名采用英文中具有实际意义的名词单词组合或是英文名词简拼的组合,并根据类所在的MVC层的名字作为后缀名,系统中嵌入了Fire WorkFlow工作流,为了将业务类和工作流类区分开,在类名开始添加Biz定义为业务类,添加Flow定义为工作流类。

例如:设计一个类作为投保处理,该类所在层为Dao层,且是业务类,该类接口为:BizAppPlyDao,类命名为:BizAppPlyDaoImpl,2)方法的命名:方法名采用英文中具有实际意义动宾结构的单词组合的形式,例如该方法保存一个投保单则命名为saveAppPly3)包的命名:包名都要小写,现有系统所有包名都以com.xxx.aaa开头,后续名称为模块名+层名,工具类放在util包下,如果某包下所有的类都是自定义接口的实现类,则该包要在所实现接口的包下面,并命名为impl。

例如:com.xxx.aaa.app.service,com.xxx.aaa.app.service.impl2.注释:1)类注释:必须包含该类的描述,例如功能信息,注明作者(可以同svn的账户名),创建时间,版本号等。

2)方法注释:必须包含该方法的用途,参数介绍,返回值介绍,抛出异常等信息3)行注释:代码的关键行、判断分支、关键算法、复杂语法、关键字段或是修改别人代码的新添内容必须写详细的注释说明如果关键算法不能立即实现注释上加// TODO4)添加注释模版按照注释模版的格式填写。

(附模版文件)三、数据库表和字段命名规范1.数据库表命名数据库表大体分为公共信息表(Common),业务数据表(Biz)、工作流表(Flow),公共信息表以Common开头,业务数据表以Biz开头,工作流表已Flow开头,各个单词间以“_”下划线隔开,并采用与保存数据相关的英文单词,例如业务保单数据信息表的命名为:Biz_Ply_Information2.表中字段的命名字段的命名为英文单词(简拼)的组合,各个单词间以“_”下划线隔开,采用与保存数据相关的英文单词,例如保单号为:ply_no注意:在设计数据库和创建数据库、创建表或是修改数据表,添加字段等都要添加comment注释3.Sql编写规范1)关键字大写,表明、字段名小写,别名用驼峰命名法。

mysql 编码规则

mysql 编码规则

MySQL编码规则是指MySQL数据库中字符集和排序规则的设置。

字符集定义了存储在数据库中的字符数据的类型,而排序规则定义了对这些字符数据的比较和排序方式。

MySQL支持多种字符集和排序规则,其中最常用的是utf8字符集和utf8_general_ci排序规则。

utf8字符集可以存储任何Unicode字符,而utf8_general_ci排序规则则按照字典顺序对字符进行排序。

在MySQL中,可以通过以下命令查看当前数据库的编码规则:
```
SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collation%';
```
如果需要修改编码规则,可以使用以下命令:
```
ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
```
其中,database_name是要修改编码规则的数据库名称,table_name是要修改编码规则的数据表名称。

编码规范

编码规范
编码规范
编码规范概述
编码规范的必要性
① 有助于程序的维护,降低软件生命周期成本,符 合项目管理的规律 ② 使团队中相关人员的流动对项目的影响尽可能小, 有利于项目的控制与管理; ③ 提高程序的可读性,有利于相关设计人员交流, 提高软件质量; ④ 容易发现代码的问题,调试时比较容易 ⑤ 体现公司形象
实例讲解
• C#的编码规范
– 代码格式
代码的格式包括缩进、换行、空行、空格等,为了不影响编码的效率,在此只作如下规定: • 空格、空行不做严格的固定,以使代码清晰为基本原则。空行不影响程序的运行,但可 以使代码看起来清晰,增加可读性,因此可以适当的多用。 • 代码的缩进建议使用tab键进行控制,tab键的大小设置为4个空格。每个层次都要进行缩 进。 如:
if (isOverFlow) { return false; }
• 换行,掌握的原则是不要使一行代码特别的长,再不产生严重歧义或增加阅读难度的情 况下,尽量控制在120列之内,以方便代码的打印。另外,换行的原则是,在逗号后,操 作符前换行,换行与首行要保持一个单位的缩进。 如: string strSql = “SELECT ID,NAME,SEX,BIRTHDAY,” + “BELONGCLASSID,BELONGGRADEID “ + “FROM STUDENTINFO”; • { }必须单独在一行上,且上下对齐。 • if,while,do,try-catch-finally等语句后必须有{},即使里面只有一条语句或为空,且遵循 { }单独成行的原则。
实例讲解
• C#的编码规范
– 注释(续)
• 特别注意,如果是在已经发行版本的基础上添加、修改、删除代码,则需要将原先的代 码注释掉,而不是直接删除掉,然后添加自己的代码。如: 添加新代码的注释: //add by [姓名] yyyyMMdd xxx // add by [姓名] yyyyMMdd 修改代码的注释: //update by [姓名] yyyyMMdd // xxx yyy // update by [姓名] yyyyMMdd 删除代码的注释: //delete by [姓名] yyyyMMdd //xxx // delete by [姓名] yyyyMMdd

数据库设计指南

数据库设计指南

数据库设计指南1. 设计原则1.1. 关于范式如无性能上的必要原因,应该考虑遵循关系数据库理论,达到较高的范式匹配(3NF),避免数据冗余,明确数据间的关系。

如果对性能有较高要求,或者在特定场景达成业务目标的便利性收益高于数据管理影响,可以设计适当的突破范式要求。

1.2. 字符集和编码应当采用Unicode字符集和UTF8编码,此为PostgreSQL 数据库服务器默认设置,并且,如果在创建数据库(实例)时没有特别指定,也将是数据库(实例)的默认设置。

如果有强烈的中华多文字支持要求,如简体汉字、繁体汉字、少数民族文字、日文、韩文等,可以使用GB18030字符集和编码,不建议使用GB2312、GBK。

1.3. 数据库服务器和数据库一个操作系统中只部署 1 个数据库服务器软件。

一个数据库服务器中可以创建多个数据库。

1.4. 表空间对于PostgreSQL 来说,在同一个磁盘分区上建立多个表空间没有太多实际意义。

从合理利用磁盘性能和空间角度,可以分别建立不同的表空间,如:•在高IO 性能的磁盘分区上创建的表空间,可以用来存放经常访问的表和索引。

•在便宜和较低IO 性能的磁盘分区上创建的表空间,可以用来存放很少使用或性能要求不高的归档数据的表。

对于容器部署的数据库,容器内可以使用默认表空间pg_default(路径$PGDATA/base),并映射到容器外宿主机的特定路径下。

非容器部署的数据库,建议在指定的路径下创建表空间。

多个数据库可以共用同一个表空间。

注意: PostgreSQL 中的表空间与 Oracle 不一样,创建PostgreSQL 表空间只要指定名称与数据库文件的目录,而没有具体的大小。

PostgreSQL 表空间不适用“自动扩容”这个概念,存储不足时可以通过扩展表空间所在存储容量,或者在不同存储设备/分区中新建表空间并指定新表使用新表空间来达到扩容目的。

1.5. Schema建议为子系统、业务模块或用户分配对应的schema。

数据库设计规范_编码规范

数据库设计规范_编码规范

数据库设计规范_编码规范数据库设计规范包括数据库表结构的设计原则和数据库编码规范。

数据库表结构的设计原则包括表的命名规范、字段的命名规范、主键和外键的设计、索引的使用、约束的定义等。

数据库编码规范包括SQL语句的书写规范、存储过程和函数的命名规范、变量和参数的命名规范、注释的使用等。

1.表的命名规范-表名使用有意义的英文单词或短语,避免使用拼音或缩写。

- 使用下划线(_)作为单词之间的分隔符,如:user_info。

- 表名使用单数形式,如:user、order。

2.字段的命名规范-字段名使用有意义的英文单词或短语,避免使用拼音或缩写。

- 字段名使用小写字母,使用下划线(_)作为单词之间的分隔符,如:user_name。

- 字段名要具有描述性,可以清楚地表示其含义,如:user_name、user_age。

3.主键和外键的设计-每张表应该有一个主键,用于唯一标识表中的记录。

- 主键字段的命名为表名加上“_id”,如:user_id。

- 外键字段的命名为关联的表名加上“_id”,如:user_info_id,指向user_info表的主键。

4.索引的使用-对于经常用于查询条件或连接条件的字段,可以创建索引,提高查询性能。

-索引的选择要权衡查询性能和写入性能之间的平衡。

-不宜为每个字段都创建索引,避免索引过多导致性能下降。

5.约束的定义-定义必要的约束,保证数据的完整性和一致性。

-主键约束用于保证唯一性和数据完整性。

-外键约束用于保证数据的一致性和关联完整性。

6.SQL语句的书写规范-SQL关键字使用大写字母,表名和字段名使用小写字母。

-SQL语句按照功能和逻辑进行分行和缩进,提高可读性。

-使用注释清晰地描述SQL语句的功能和用途。

7.存储过程和函数的命名规范-存储过程和函数的命名要具有描述性,可以清楚地表示其功能和用途。

-使用有意义的英文单词或短语,避免使用拼音或缩写。

- 使用下划线(_)作为单词之间的分隔符,如:get_user_info。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库编码规范1 目的?为了统一公司软件开发的设计过程中关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。

?2 范围?本规范适用于全体开发人员,作用于软件项目开发的数据库设计、维护阶段。

?3 术语?数据库对象:在数据库软件开发中,数据库服务器端涉及的对象包括物理结构和逻辑结构的对象。

?物理结构对象:是指设备管理元素,包括数据文件和事务日志文件的名称、大小、目录规划、所在的服务器计算极名称、镜像等,应该有具体的配置规划。

一般对数据库服务器物理设备的管理规程,在整个项目/产品的概要设计阶段予以规划。

?逻辑结构对象:是指数据库对象的管理元素,包括数据库名称、表空间、表、字段/域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据库配置有关的设计以及数据库中其他特性处理相关的设计等。

?4 设计概要?设计环境?a) ORACLE 11G R2数据库?ORACLE 11G R2?操作系统?LINUX 6以上版本,显示图形操作界面b) MS SQL SERVER 2005?数据库?SQL SERVER 2005 企业版?打sp3以上补丁和安全补丁??操作系统?WINDOWS 2008 SERVER设计使用工具?a)使用PowerDesigner 做为数据库的设计工具,要求为主要字段做详尽说明。

对于SQL Server 尽量使用企业管理器对数据库进行设计,并且要求对表,字段编写详细的说明(这些将作为扩展属性存入SQL Server中)?b)通过PowerDesigner 定制word格式报表,并导出word文档,作为数据字典保存,格式。

(PowerDesigner v10 才具有定制导出word格式报表的功能)。

对于SQL Server 一旦在企业管理器进行数据库设计时加入扩展属性,就可以通过编写简单的工具将数据字典导出。

?c) 编写数据库建数据库、建数据库对象、初始化数据脚本文件?设计原则?a) 采用多数据文件?b) 禁止使用过大的数据文件,unix系统不大于2GB,window系统不超过500MB?c) oracle数据库中必须将索引建立在索引表空间里。

?d) 基本信息表在建立时就分配足够的存储空间,禁止其自动扩展功能?e) 大文本字列、blob列要独立出一张表,此表只有id和blob(或大文本)列?f) 为每一个数据库创建独立的管理员用户,使用该用户进行设计,尽量不要使用sa或者系统管理员身份进行数据库设计。

?设计的更新?a) 在设计阶段,由数据库管理员或指定的项目组其一成员进行维护。

?b) 运行阶段,由数据库管理员进行维护。

?c) 如对表结构进行修改,应先在数据字典文档进行修改,最后在数据库中进行修改。

如果修改的是数据库字典表,必须由数据库管理员进行。

?d) 编写更新的SQL代码,如果使用PowerDesigner,禁止由PowerDesigner 直接连数据库进行数据库操作(如果是更改表或者字段的说明性文字可以通过数据库管理器图形界面进行修改)?e) 修改数据库要通过SQL,禁止其它方式对数据进行修改?f) 修改数据库的SQL要添加说明后保存备查?5 命名总体原则?设定的前缀一律用小写字母?标识名称命名全部小写?整个命名的全长不得超过30个字母?全部使用字母和下划线‘_’,不能使用中文和其他字符,有特别情况允许使用末尾数字编号。

例如:t_Finace1, t_Finace2...?命名名称来自于业务,全部采用英文单词?英文单词过长可以采用通用的缩写,尽量表达出业务的含义?如需要两个以上的英文单词做标识名称,单词之间要用下划线‘_’连接?名称全是由名词组成的,名词由大范围到小范围排序取名?完成某功能的名称,如函数和过程,以动宾形式取名?6 命名规范(逻辑对象)?数据库结构命名?a) 数据库命名?数据库的命名要求使用与数据库意义相关联的英文字母,即<业务系统名称>。

?例如:china care 数据库的命名为ccnet;?客户资料数据库的命名为Customer_Info。

?b) 数据库日志设计命名?数据库日志的的命名以<数据库名>_<日志名>.log格式命名。

其中,<日志名>为有意义的数据库日志名称。

?例如:?c) 数据库配置设计命名?数据库配置设计方案是以文件形式保存的,其内容是关于特定数据库的配置项目的具体值。

?数据库配置文件的命名以:<数据库类型简写〉_<应用系统标志>格式命名。

?其中,数据库类型简写见附件2《数据库类型简写》,cfq表示该文件是数据库配置文件。

?例如:ORA_ ?d) 数据库复制与存储设计命名?数据库复制与存储设计方案是以文件形式保存的,其内容是关于特定数据库之间的复制策略的具体细节。

?数据库复制与存储设计文件的命名以:<数据库类型简写>_<应用系统标志>格式命名。

?其中,数据库类型简写见附件2《数据库类型简写》,rep表示该文件是数据库复制与存储文件。

?e) 数据库连接设计命名?数据库连接设计方案是以文件形式保存的,其内容是关于特定分布式数据库之间的连接设计的具体细节。

?数据库连接设计文件的命名以:<数据库类型简写>_<应用系统标志>_dbl. sql格式命名。

其中,数据库类型简写见附件2《数据库类型简写》,dbl 表示该文件是数据库连接设计文件。

?f) 表空间、数据文件命名(主要针对Oracle)?索引表空间:?表空间命名格式:ts<系统标识>_i?数据库文件命名格式:ts<系统标识>_i[n].dbf?临时表空间:?表空间命名格式:ts<系统标识>_t?数据库文件命名格式:ts<系统标识>_t[n].dbf?回滚表空间:?表空间命名格式:ts<系统标识>_r?数据库文件命名格式:ts<系统标识>_r[n].dbf?数据表空间:?表空间命名格式:ts<系统标识>_d?数据库文件命名格式:ts<系统标识>_d[n].dbf?注:表空间名不超过8位,n 可取00-99或0-9,根据系统数据量确定。

?数据库对象命名?a) 表?表的命名必须以“t_”(Table缩写)开头,格式为:t_[系统标识]_<数据表类型标识>_<表标识>。

?其中,[ ]表示可选项,依据实际情况而增加;<表标识> 要求与表意义相关联的英文字母,例如:t_Customers。

?数据表大致分为:业务数据表、基本编码表、辅助编码表、系统信息表、累计数据表、结算数据表、决策数据表;基本编码表用base标志?累计数据表用count标志?系统信息表用info标志 ...?例如:t_trade_base_trade_code,t_trade_info_help ...?b) 字段/域?根据业务要求进行命名,不需设定固定的前缀。

?c) 索引?针对数据库表中一个或多个字段建立的索引的命名格式应以“idx_”开头,索引列名间用_隔开,即为idx_ColumnName1_ColumnName2_…?其中,ColumnName1是数据库表中(第一个)索引字段的名称或名称简写;ColumnName2是数据库表中(第二个)索引字段的名称或名称简写;索引名的总长必需符合数据库的规定。

?例:idx_cert_number (表示在字段cert_number上创建索引)?为了避免重名索引出现,可选命名方式为 idx_<表名>_<递增号> 作为索引的命名,但是要求在数据字典中进行详细说明?d) 视图?视图的命名必须以“v_”(View 缩写)开头,格式为: v_<视图类型>_[系统标识] _<视图标识>。

?其中,视图类型参见“表的分类说明”;[系统标识_]是可选项,依据情况而增加;<视图标识> 应与视图意义相关联的英文字母。

?例:v_user_detail_info?e) 存储过程?存储过程的命名必须符合sp_[系统标识]_<存储过程标识>格式。

?其中,sp表示是存储过程;[系统标识]为可选项,依据情况而增加;<存储过程标识>是与存储过程意义相关联的英文字母,例如:USP_Query_Write_to_Disk。

?例:sp_check_user_auth(以动宾方式取名)?f) 触发器?触发器的的命名必须符合tr_<表名>_<i,u,d的任意组合> 格式。

?其中,tr表示是触发器;<i,u,d的任意组合>是与触发器意义相关联的英文字母。

?例:tr_user_info_iu (表示对user_info表进行插入、更新的触发器)?g) 函数?函数的命名必须符合fn_[系统标识]_<函数标识>格式。

?其中,fn表示是函数,[系统标识]为可选项,依情况而定;<函数标识>是与函数意义相关联的英文字母。

?例:fn_create_id(以动宾方式取名)?h) 自定义数据类型?自定义数据类型的命名格式为:ud_<自定义数据类型标识>_<数据类型>?i) Default(缺省)?Default(缺省)的命名格式一般为:df_<Default标识>;对于非绑定的默认可取系统默认的名字,请参见第点实例绑定具体字段。

?if exists (select * from sysobjects where type = 'D' and name = 'df_begin_date')?drop default ?go?go?j) Check、Constraint(约束)?约束的命名格式一般为:ck_<表名>_ <Check标识>;一些约束可直接放在生成表的语句中。

?例:ck_flag 参见第点实例,约束字段flag只能取字符‘0’到‘9’:?constraint ck_flag CHECK (flag between '0’ and '9’ )?k) Rule(规则)?规则的命名格式一般为:rl_<Rule标识>;对于非绑定规则(约束) 可取系统默认的名字,参见第10点设计实例绑定具体字段。

?例:rl_not_zero (定义一个不等于0的规则)?if exists (select * from sysobjects where type = 'R' and name = 'rl_not_zero')?drop rule ?go?create rule rl_not_zero as @i <> 0?go?l) 主键?主键的命名格式为pk_<表名>_<主键标识>。

相关文档
最新文档