11-《数据库开发规范》模版
开发规范模板

广州铂希纳信息技术有限公司
技术开发规范
目录
1.数据库命名规范 (3)
1.1数据库名称规范 (3)
1.2数据库表命名规范 (3)
1.3数据库字段命名规范 (4)
2.业务类命名规范 (4)
2.1业务类 (4)
2.2方法名规范 (4)
2.3参数名称规范 (5)
3.界面层命名规范 (5)
1.数据库命名规范
1.1数据库名称规范
在设计数据库名称时应以项目名称简写开头,尽量控制在3个字母之下,然后再加上erp三个字母例如沃富林ERP项目,数据库命名:WFLERP
1.2数据库表命名规范
在设计数据库表的时候应以用到该表的模块的名称简写来命名
例如
1.3数据库字段命名规范
在设计数据库字段时,除了ID必须外,其它字段的命名规范应以表名加数字为名称
例如商品表SP01,字段应为:SP01001,SP02002以此类推
2.业务类命名规范
2.1业务类
命名时候应该以模块名称简称来命名,尽量控制在两个字母
例如
2.2方法名规范
在业务类里写方法命名时候应以下划线开头,加上操作类型再加上业务类名称,最后加上自定义名称例如添加采购订单_setcgdd()
2.3参数名称规范
在写方法时调用参数,参数的命名应该与数据库字段名称尽量一致
例如,设置一个删除采购订单方法:_delcgdd($id,$DD01001,$ DD01002,$ DD01003);
3.界面层命名规范
在界面展示层,定义功能名称,应以功能简称来命名文件名称
例如采购业务的订单功能,功能名称为dd,则文件名为cg-dd
在文件里写界面方法时的命名,首个方法是lst()
例如。
数据库开发安全规范

数据库开发安全规范1. 密码安全- 使用强密码:密码应包含大小写字母、数字和特殊字符,并且长度应不少于8位。
- 定期更换密码:为了保持数据库的安全性,管理员应定期更换数据库密码。
- 不保存明文密码:开发人员不得将用户密码以明文形式存储在数据库中。
2. 数据备份和恢复- 定期备份数据:管理员应定期备份数据库中的重要数据,以防止数据丢失或损坏。
- 离线备份:备份数据应存储在不同物理位置的离线设备上,以防止数据丢失或被未经授权的访问者篡改。
- 定期测试数据恢复:管理员应定期测试数据库备份的可恢复性,以确保在发生数据丢失时能够快速进行恢复操作。
3. 访问控制- 最小权限原则:管理员应为开发人员分配最小必要权限,以降低数据泄露和滥用的风险。
- 严格权限控制:数据库用户应仅被授予其工作所需的权限,以防止未经授权的访问和数据泄露。
- 监控和审计:管理员应实施日志监控和审计机制,以便及时检测和响应异常访问行为。
4. 网络安全- 防火墙配置:数据库服务器应配置防火墙,限制从外部网络访问数据库的连接。
- 加密通信:数据库的网络通信应使用加密协议,如SSL/TLS,以确保数据在传输过程中的安全性。
- 远程访问限制:禁止未经授权的远程访问数据库,仅允许经过身份验证的用户进行远程访问。
5. 安全审计- 定期安全审计:管理员应定期进行数据库安全审计,包括检查权限配置、访问日志、异常行为等,以发现潜在的安全隐患。
- 及时处理安全漏洞:一旦发现数据库安全漏洞,管理员应立即采取措施进行修复,以防止被黑客利用。
以上是数据库开发安全规范的主要内容。
管理员和开发人员应严格遵守这些规范,以保护数据库中的数据安全和用户隐私。
数据库开发规范

数据库开发规范1、命名规范1.1、命名总规则1、所有名称的字符范围为:A-Z, a-z, 0-9 和_(下划线)。
不允许使用其他字符作为名称。
2、采用英文单词或英文短语(包括缩写)作为名称,不能使用无意义的字符或汉语拼音。
3、名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。
1.2、表命名规范1、不使用tab或tbl作为表前缀(本来就是一个表,为什么还要说明)2、表名以代表表内的内容的一个和多个名词组成,以下划线分隔,每个名词的第一个字母大写。
3、使用表的内容分类作为表名的前缀:如,与用户信息相关的表使用前缀User_,与内容相关的信息使用前缀Content_。
4、表的前缀以后,是表的具体内容的描述。
如:用户登录信息的表名为:User_Login,用户在论坛中的信息的表名为:User_BBS_Info5、一些作为多对多连接的表,可以使用两个表的前缀作为表名:如:用户登录表User_Login,用户分组表Group_Info,这两个表建立多对多关系的表名为:User_Group_Relation6、当系统中有一些少量的,重复出现的值时,使用字典表来节约存储空间和优化查询。
如地区、系统中用户类型的代号等。
这类值不会在程序的运行期变化,但是需要存储在数据库中。
就地区而言,如果我们要查询某个地区的记录,则数据库需要通过字符串匹配的方式来查询;如果将地区改为一个地区的代号保存在表中,查询时通过地区的代号来查询,则查询的效率将大大提高。
字典表统一以dic_作为前缀。
1.3、字段命名规范1、字段不使用任何前缀(表名代表了一个名称空间,字段前面再加前缀显得罗嗦)2、字典名也避免采用过于普遍过于简单的名称:例如,用户表中,用户名的字段为UserName 比Name更好。
3、布尔型的字段,以一些助动词开头,更加直接生动:如,用户是否有留言HasMessage,用户是否通过检查IsChecked等。
数据库开发规范

数据库开发规范数据库是现代信息化建设中不可或缺的重要组成部分。
随着信息量的日益增加和业务流程的复杂化,数据库的规模和复杂度也在不断提高。
如何合理规划数据库的结构,设计高效的数据模型,制定良好的开发规范,保证数据的安全性和稳定性,成为了数据库开发人员必须面对的问题。
本文将介绍一些数据库开发规范,以帮助开发人员提高开发效率和代码质量。
1. 数据库命名规范(1)数据库命名规范遵循标准命名法则,采用下划线分隔单词;(2)数据库名称应该简明、清晰,不使用过分简写的缩写,以免造成不必要的歧义;(3)尽量不使用特殊字符和中文字符,以免造成编码混乱和兼容性问题。
2. 数据表命名规范(1)数据表名称应该使用复数名词,以便清晰了解和识别;(2)表名应该简单、直白,尽量描述表中数据的实际含义;(3)尽量遵循标准命名规范,采用下划线分隔单词。
3. 数据字段命名规范(1)数据字段名称应该简明、清晰,尽量描述数据的实际含义;(2)尽量使用英文单词,避免使用拼音或中文字符,以免造成编码混乱和兼容性问题;(3)数据字段中禁止使用特殊字符,如"#"、"@"等;(4)尽量采用统一的命名方式,如"create_time"、"update_time"等。
4. 数据类型规范(1)根据实际需要选择合适的数据类型,尽量避免使用过大或过小的数据类型;(2)合理控制文本和字符串类型的长度,以避免造成数据浪费;(3)尽量不使用复合类型,如数组、结构体等。
5. 数据库索引规范(1)细心审查表、字段的使用情况,尽量减少冗余数据;(2)合理使用索引,提高查询效率,减少查询时间;(3)选择合适的数据类型,减少排序、筛选等耗时操作。
6. 数据库安全规范(1)限制访问数据库的用户,分离不同的权限;(2)保护数据的安全性和隐私性,限制敏感信息的访问;(3)使用密码强度加密技术,保证密码的安全性。
数据库开发规范

XXX科技技术规范数据库开发规范目录1、目的 (2)2、读者 (2)3、名词解释 (3)4、存储过程开发规范 (3)4.1名称规范 (3)4.2注释规范 (3)4.3命名规范 (4)4.3.1参数的命名 (5)4.3.2变量命名 (5)4.4模板规范 (6)4.5存储过程功能模块组成说明 (6)4.5.1过程名定义 (6)4.5.2过程注释 (7)4.5.3过程体 (8)4.5.4存储过存功能模板(附件) (9)4.6日志 (9)4.6.1功能 (9)4.6.2调用方法 (9)4.6.3日志查询 (10)4.6.4日志结果 (10)4.6.5日志过程(附件) (10)4.6.6日志表(附件) (10)4.7书写规范和优化方法 (10)4.7.1操作符优化 (10)4.7.2SQL书写的影响 (13)4.7.3WHERE后面的条件顺序影响 (14)4.7.4查询表顺序的影响 (15)4.7.5SQL语句索引的利用 (15)1、目的为了提高项目开发效率及所开发软件的可维护性,提高软件的质量,避免文件、目录、公用参数名字冲突,统一项目组内部开发风格,增加程序可读性和可理解性。
2、读者本文适用以下读者: ETL设计、开发人员。
3、名词解释4、存储过程开发规范4.1名称规范注意事项:一、存储过程名称全部使用英文,参数注释也必须使用英文。
以 SP开头格式如下 : SP_[TABLENAME] <TABLENAME为目标表>。
二、函数名称全部使用英文,参数注释也必须使用英文。
以 FN开头格式如下 : FN_[……],如:FN_LOG_EXEC 。
报表类存储过程命名规则:SP_RPT_[部门]_[报表功能]_[月表M,日表D]编号中文说明存储过程名------- ---------------- --------------------2DY0001 网银开销户统计表 SP_RPT_DY_WYKXHTJB_M4.2注释规范存储过程注释信息应包含如下信息:------------------------------------------------------版权信息:版权所有(c) 2014,--文件名称:SP_MODEL.prc--版本号:--创建者:system--创建日期:2014-01-01--内容摘要:--功能描述:生成核心客户信息表 O_HX_CUST_INFO--运行频率:日跑--传入参数: I_STATEDATE --业务日期-- O_FLAG INTEGER --返回过程运行状态 0-正常结束 1 异常--更改历史:--更改日期:--更改人:lys--更改说明:----------------------------------------------------4.3命名规范注意事项:存储过程命名全部使用英文,参数注释也必须使用英文。
数据库开发规范

数据库开发规范数据库开发规范指的是在进行数据库开发工作时,要遵循的一系列规范和准则,以确保数据库的设计合理性、效率和稳定性。
以下是一个包括约1000字的数据库开发规范:一、命名规范1. 表名、字段名、视图名、存储过程名、函数名、触发器名等应该使用有意义的英文单词或词组来命名,且使用下划线作为单词之间的分隔符。
例如,表名可以命名为“students”,字段名可以命名为“student_id”。
2. 表名应该使用单数形式,例如“student”而不是“students”。
二、数据类型规范1. 在选择数据类型时,应尽量使用最简单的数据类型,避免使用过于复杂的数据类型。
2. 需要存储精确浮点数时应使用 DECIMAL 或 NUMERIC 数据类型,避免使用浮点型数据类型,例如 FLOAT 或DOUBLE。
3. 需要存储日期和时间时应分别使用 DATE 和 TIMESTAMP数据类型。
三、主键规范1. 每个表都应该有一个主键,用于唯一标识每一条记录。
2. 主键应该是简单、稳定和不可更改的。
一般情况下,可以使用自增长的整数作为主键。
3. 主键的命名应该统一,并且在命名时应遵循表名加上“_id”的规则。
四、索引规范1. 对于经常被查询或用于连接的字段,应该添加索引,以提高查询性能。
2. 除非有特殊需要,不要在较小的表上创建索引,因为索引会增加查询和更新的开销。
3. 在创建索引时,应该根据具体的查询需求选择合适的索引类型,包括唯一索引、非唯一索引、聚集索引、非聚集索引等。
五、约束规范1. 应该使用外键约束来确保数据的完整性和一致性。
2. 外键约束应该定义在子表上,并且应该指向主表的主键。
3. 在删除或更新主表的数据时,应该采取合适的措施来处理与之相关的子表数据,例如设置级联删除或级联更新。
六、存储过程和函数规范1. 存储过程和函数应该使用有意义的名称,以描述其功能。
2. 存储过程和函数应该尽量简短,并且只处理一个具体的业务逻辑。
数据库开发规范

1、命名规范1、总体命名规范∙名称的长度不超过32个字符。
∙名称采用英文单词、英文单词缩写和数字,单词首字母大写。
∙数据库对象名称首字母必须大写。
∙不得采用"_"作为名称的起始字母和终止字母。
∙名称必须望文知意。
∙名称不得与数据库管理系统保留字冲突。
∙不要在对象名的字符之间留空格。
2、数据库名∙数据库名定义为系统名+模块名,或直接采用系统名。
∙数据库名单词首字母大写。
3.表表命名要遵循以下原则:∙采用"表义名"格式构成。
∙整个表名的长度不要超过30个字符。
∙表义名均以其英文单词命名,且字符间不加分割符;单词的首字符大写,其它字符小写,多个单词间也不加任何分割符,单词全部采用单数形式。
∙表别名命名规则:取模块名+下划线+表意名。
∙关联表命名为Re表A表B,Re 是Relative的缩写,表A 和表B均采用其表义名或缩写形式。
∙以用户数据库部门表为例,该数据库的模块名为User,部门表的表义明为Department,那么根据表的命名规范,该表的名称就应为UserDepartment5.属性(列或字段)属性命名遵循以下原则:∙采用有意义的列名,为实际含义的英文单词,且字符间不加任何分割符。
∙属性名前不要加表名等作为前缀,以用户数据库UserDepartment表部门状态为例,根据属性的命名规则,该名称为State,而非DepartmentState。
∙属性后不加任何类型标识作为后缀。
以用户数据库UserDepartment表部门状态为例,根据属性的命名规则,该名称为State,而非State_Department。
∙不要使用"ID"等与系统保留关键字冲突的单词作为列名,以用户数据库UserDepartment表部门ID为例,根据属性的命名规则,该名称为DepartmentID。
∙文本类型的字段变长时用VARCHAR,定长用CHAR。
∙尽可能采用小数据类型,如时间类型字段:只需日期的使用date,只需时间的使用time,只须精确到分可以使用smalldatetime。
数据库开发设计规范

数据库开发设计规范1基本命名规范对象名统一使用大写字母,形成混合拼写的格式+下划线+后缀名(对象类型)命名尽量采用富有意义的英文词汇,不准采用汉语拼音,如:订单ORD_USER_571 当前表ORD_USER_F_571_201009 订单已竣工表ORD_USER_H_571_201009 订单历史表实例INS_PROD_571 实例当前表INS_PROD_H_571_201009 实例历史表资源RES_SIM_CARD_ORIGIN_571 未用表RES_SIM_CARD_USED_571 已用表工单表PS_PROVISION_571 当前表PS_PROVISION_571_ERR 处理错误表PS_PROVISION_H_571_201009 已经完成表2实体表命名规则前几位代表模块英文缩写,后面代表该对象的英文名称:如:INS_PROD_571 杭州产品实例表模块划分:3字段类型使用规则Oracle常用的字段类型如下:表设计时对字段类型使用应遵循以下规则:1、对于字符型字段,字段类型选择时尽可能的使用varchar2字段类型,避免使用char字段类型,因char类型字段在字符长度不足位的情况下Oracle会自动补空格,存在一定的开发隐患;2、对于需要存储的字符串长度超过varchar2字段类型规定的最大长度(4000字节)的情况,模型设计时原则上禁止使用blob/clob字段类型,建议采用定义多个varchar2类型字段的方式设计,应用开发在存储字符串时对字段串分割后进行存储,获取字符串时对多个字段存储的字符串查询后进行拼接。
如特定情况下需要使用blob/clob字段类型,必须向架构组和平台组提交申请,审核后方可使用;3、时间类型的数据选择date类型,避免使用timestamp类型;4、整数类型字段使用number(p)定义,浮点类型字段使用number(p,s)定义。
对于金额类的字段,除特定场景下,系统均是使用分为单位,在字段类型选择时优先使用整数类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
新奇迹科技有限责任公司数据库设计规范(ORACLE版)目录§1. 后台SQL编程....................................... 1-1§1.1.程序的基本结构......................................................... 1-1§1.2.程序的书写规范......................................................... 1-1§1.2.1. 基本要求........................................................... 1-1§1.2.2. 注释............................................................... 1-2§1.2.3. 流程控制语句的书写规范............................................. 1-3§1.2.4. SQL语句的书写规范................................................. 1-4§1.3.前台编码............................................................... 1-5§1.3.1. 大小写要求:....................................................... 1-5§2. 数据库的设计....................................... 2-5§2.1.数据库命名............................................................. 2-6§2.2.查询的优化............................................................. 2-7§2.3.事务处理............................................................... 2-9§2.4.死锁防止............................................................... 2-9、§1. 后台SQL编程§1.1. 程序的基本结构存储过程的基本结构如下:CREATE PROCEDURE prcedure_name ( ←-- 声明存储过程@parameter_name1 DATATYPE [= default] [output]←-- 参数说明@parameter_name2 DATATYPE [= default] [output]......AS/*------------------------------------------- ←-- 程序说明|| 业务环节:综合部分_补收退收|| 过程名称:养老补收处理|| 功能描述:养老补收处理|| 参数描述:参数标识名称输入输出类型|| -----------------------------------|| ......|| 作者:AAAAA 完成日期:1999-12-26||-----------------------------------------------|| 修改记录:AAAA 修改日期:2000-02-24||-----------------------------------------------*/BEGINstatement ←-- 处理逻辑 ......[RETURN] ←-- 退出存储过程END§1.2. 程序的书写规范§1.2.1. 基本要求⏹后台存储过程的编写、维护,以Script文件为基础;具体的书写格式请参见程序模板。
⏹程序单行的长度不得超过80字符。
⏹SQL的保留字一律采用小写方式描述。
⏹系统函数一律采用小写方式描述。
⏹表名、字段名、视图名等,一律采用小写方式描述。
⏹为提高程序的可读性,必须采用有缩排方式的程序风格。
⏹使用空格字符缩进。
§1.2.2. 注释⏹存储过程的头部必须包括有关的说明,其注释风格采用多行注释(/*...*/)方式。
⏹在程序内部,处理的关键点处需要进行注释。
注释采用单行注释(--)方式。
例:-- 有效条件判断IF conditionStatement......⏹SQL语句的每一个字段要追加注释进行说明。
例:SELECT aad051, -- 业务指标名称(字段名)aad052, -- 分类指标名称1(字段名) aad053, -- 分类指标代码值1(代码值) aad054, -- 分类指标名称2(字段名) aad055, -- 分类指标代码值2(代码值) aad056, -- 分类指标名称3(字段名) aad057, -- 分类指标代码值3(代码值) aad058, -- 分类指标名称4(字段名) aad059, -- 分类指标代码值4(代码值) aad060, -- 分类指标名称5(字段名) aad061, -- 分类指标代码值5(代码值) aae140, -- 险种类型aad031, -- 财务科目代码aad032 -- 财务记帐方向FROM ad05 -- 《业务数据与财务科目对照信息》 WHERE aad050 = prm_EntityName -- 业务实体名称(视图名或表名)§1.2.3. 流程控制语句的书写规范⏹IF ... ELSE...例1:IF conditionStatement1ELSEStatement2例2:IF conditionBEGINStatement......ENDELSEBEGINStatement......END例3:IF condition1Statement1ELSEIF condition2Statement2ELSEStatement3⏹CASE例1:CASEWHEN searchcondition1 THEN result1WHEN searchcondition2 THEN result2......ELSE resultNEND例2:CASE valueTWHEN value1 THEN result1WHEN value2 THEN result2......ELSE resultNEND⏹WHILE、BREAK和CONTINUE例:WHILE boolean_expressionBEGINStatement1Statement2......IF condition1BREAK......IF condition2CONTINUE......END§1.2.4. SQL语句的书写规范⏹SELECT/INSERT/UPDATE/DELETE⏹游标例:DECLARE cur_name CURSORFORSELECT ...FROM ...WHERE ...AND ...OR ...FOR UPDATE OF column_name......OPEN cur_nameFETCH cur_name INTO @parameter1,...CLOSE cur_name§1.3. 前台编码§1.3.1. 大小写要求:§2. 数据库的设计数据库的设计是把现实世界的商业模型与需求转换成数据库的模型的过程。
对于关系数据库,标准的设计是满足第三范式(3NF)建表,当把E-R模型转换成关系模型时,实体变成表,属性变成列,实体简的联系就是数据的参照。
1NF的规则是:每一列必须是原子的,不能分成多个子列每一行和列的位置只能有一个值不能具有多值列2NF的规则是:除满足1NF外,非主码列必须依赖于所有主码,而不是组合主码的一部分。
3NF的规则是:除满足2NF外,任一非主码列不能依赖于其它非主码列。
数据库中的数据规范化的优点是减少冗余,节约存储空间,相应逻辑和物理I/O 次数减少,同时加快了增、删、改的速度,但是对于完全规范的数据库查询时,通常需要更多的连接操作。
通常一个完全规范化的设计并不能总生成最优的性能,因此通常是先按照3NF设计,如果有性能问题,再通过反规范来解决。
采用规范的好处是降低连接操作的需求、降低外码和索引的数目、降低表的数目,带来的问题可能是出现数据的完整性问题。
加快查询速度,降低修改速度,因此做反规范时需权衡利弊。
反规范的技术有:增加冗余列、增加派生列、重新组表、复制表和分裂表。
§2.1. 数据库命名数据库相关对象命名方法为类简写+标识(拼音简写),表名称,视图名及快照名采用大写,表字段名采用小写例如:一日志表名操作日志,主表名EVENT那么命名:EVE_CZRZ一代码表名代码类型那么命名为:B_DMLX此表中有序号、代码名称和代码种类三列那么命名为:va_xh,va_dmmc、va_dmzl此表中有插入性触发器一个那么命名为:ti_sd_dmlx表字段类型缩写与表字段类型对应关系如下:§2.2. 查询的优化1)创建搜索变量时应注意:在搜索子句的列名边要避免函数、算术操作符和其它表达式 避免不兼容的数据类型使用复合索引的第一个列名给优化器尽可能多的搜索变量检查showplan的输出,看使用了哪些索引和关键字。
2)子查询的优化把子查询转化为连接查询把子查询的结果存储到工作表中把子查询放到执行的最后处理3)查询例如,在int_col上有索引select * from table where int_col>3就不如select * from table where int_col>=44)exists和not exists在子查询和if语句中,exists和in要比not exists和not in执行得快,因此应尽量不用not exists。
5)count和exists不要在子查询中使用count函数做存在性检查,因为它比exists要慢得多。
6)连接查询中的or子句和union子句Adaptive Server不能对用or连接的join查询优化。
可以将它转化了一个union来处理,分别进行查询优化7)集函数对于max和min函数的列上有索引的情况,Adaptive Server会采用特殊的优化方式。