ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:22.98KB ,
资源ID:5651174      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5651174.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(U8数据库开发规范二次开发.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

U8数据库开发规范二次开发.docx

1、U8数据库开发规范二次开发U8二次开发数据库开发规范一、 数据库命名规则 1. 表、视图、存储过程、用户定义的函数、索引 前缀尽量大写; 使用英文命名; 尽量用完整的词,单词的第一个字母大写;对象的名称应尽量表明具体使用的含义下表XX 代表对象内容。数据库对象前缀示例备注数据表一般表产品号_名称GL_AccVouchIA_SummaryMPS_Schedule产品业务数据表系统数据表UA_XXUA_Menu系统元数据,系统参数,业务流程参数等的数据集合。索引主键索引PK_表名pk_bom_bomBOM资料表上主键索引非主键索引IX_表名_XX或I_表名_XXIX_AppVouchs_IDIX_

2、IA_Subsidiary_ID_cVouTypeI_bom_bom_identcode约束外键约束FK_表名_字段名_其他FK_UA_Log_cAcc_Id默认值约束DF_名称_XXDF_bom_bom_Status_27A唯一约束UQ_表名_XXUQ_UA_Group_CGroup_ID视图视图v_产品号_XX或VW_产品号_XXV_IA_rdrecords01V_mom_moallocate vw_APAR_detail_CM存储过程存储过程SP_产品号_XXSP_XXSP_ST_Etl_RDDetailsp_SAReceive自定义函数自定义函数FN_产品号_XXFN_ua_group

3、_withuser触发器触发器TR_产品号_XX不建议使用自定义类型自定义类型UD _产品号_XX2. 表、视图等字段命名表、视图中字段都用英文命名,一般字段命名规则如下: 数据类型的简写为小写字母前缀; 后面是该字段的名称描述,应尽量表明字段含义、使用完整单词;如果名称描述多个单词组成,每个单词的第一个字母都大写 具有特殊含义的后缀结尾。例:iMaxInCost(存货总账-最小入库成本单价) | |_ 含义,;单词第一个字母大写|_ 数据类型是浮点数(目前大多数使用Decimal) 数据类型规范:数据类型缩写简写使用说明字符类型charchrc定长字符型,8000字节,字符使用varchar

4、chrc变长字符型,8000字节,普通的字符型均采用texttxtt或c文本型,存储大量文字,备注文件等ncharnchc定长的Unicode类型字符数据,4000中文字节nvarcharchrc变长的Unicode类型字符数据,4000中文字节ntexttxtt或cUnicode类型文本,可存储230-1(2,147,483,647)个Unicode字符二进制bitbitb逻辑型,0:假,1:真binarybinbin定长的二进制数据类型,8000个字节varbinarybinbin变长的二进制数据类型,8000个字节imageimgimg或bin图像,office,视频,音频等日期date

5、timedtmd日期和时间。需要精确定位时间时使用,8个字节intinti整型(-231231),用于一般数字型bigintbini长整型(-263263),浮点数floatflotf浮点(-1.79E+308 1.79E+308)Decimaldcmdcm原系统都是用i表示定点精度和小数位数。使用最大精度时,有效值从 - 1038 +1 到 1038 - 1moneymnym金钱类型,定点精度和小数位数。特殊类型Uniqueidentifierguiduid一个全局唯一的标识号Cursorcurcur游标时间戳TimestampUFTSUFTS字段名称为:UFTS,没有前后缀。特殊字段,特殊

6、含义字段命名规范项目数据类型规则备注单据及相关数据的唯一IDnvarchar,Char,uniqueidentifierchr_ID或c_ID单据主键ID;在表中使用的GUID类型数据;编码nvarchar, Charchr_Codechr_NO或c_Codec_NO单据号有规则的编码名称nvarchar, Charchr_Name或c_Name字段的名称(如商品名称,客户名称)金额float,Decimalflot_Amount,dcm_Amount各种金额表示数量float,Decimalflot_Quantity,dcm_Quantity或f_Qtydcm_Qtyi_Qty各种数量表示价

7、格float,Decimalflot_Price,dcm_Price各种价格作废Bit,int,tinyintbit_NoUsed各种作废标志审核Bit,int,tinyinti_Audit审核标志备注Nvarchar,textchr_Notesc_Notestxt_Notes备注信息注:以前有些不是按以上规则设计的,今后再添加的请按这些规则添加。 数据类型的选用 尽可能使用变长类型(除非数据列长度的确是固定的)。变长类型只存储列中实际含有的内,检索需要扫描的页会减少。 创建字符类型字段请使用UNICODE数据类型字段,使用nvarchar、nchar、ntext替换varchar、char、

8、text类型,在插入和查询时候使用N。二、 数据库语言规范1. 触发器规范由于数据表触发器容易产生很多数据库问题,一般情况下禁止使用触发器。请使用系统API的前后事件进行代码编程。2. 视图规范 不能在视图上创建视图,视图不能产生视图; 禁止通过视图修改数据; 禁止修改系统视图; 用注释说明视图的作用; 应尽量使用SQL Server 的视图生成器产生视图; 视图中不要有ORDER BY 排序语句; 视图中不要使用UNION联合视图; 禁止使用“Select * from ”,“Select T.* ”等语句; 注意缩进,格式清楚; 所有关键字要大写; 字段逗号,运算符等操作符之间有空格相隔;

9、例子:CREATE VIEW dbo.V_IA_rdrecords32 /* 销售出库单未记账单据*/AS SELECT Rdrecord.bRdFlag, rdrecord.CBusType, Rdrecord.cBusCode,Rdrecord.ccode AS cVouCode, rdrecords.AutoID AS ID,Rdrecords.iquantity, rdrecords.iunitcost, rdrecords.iprice,Rdrecords.cVouchCode AS cBatchCode, Rdrecords.cbaccounter AS cAccounter, r

10、drecord.cMaker, CAST (NULL AS TINYINT) AS bFlag, CAST (NULL AS BIT) AS bMoneyFlag, (CASE WHEN rdrecord.cVouchType = N32 THEN 1 ELSE 0 END) as bSale, rdrecord.cDefine1, rdrecord.cDefine2, rdrecord.cDefine3, rdrecord.cDefine4, . FROM rdrecords32 Rdrecords INNER JOIN rdrecord32 rdrecord ON rdrecords.id

11、=rdrecord.id and isnull(rdrecords.cbaccounter,) = LEFT JOIN WareHouse ON WareHouse.cWhcode = rdrecord.cWhCode LEFT JOIN SO_SODetails ON rdrecords.iorderdid = SO_SODetails.isosid And rdrecords.iordertype = 1 -销售订单 LEFT JOIN SO_SOMain ON so_sodetails.id = so_somain.id.3. 存储过程规范 编写存储过程原则 将每个存储过程完成一项单独的

12、任务; 存储过程可以调用存储过程; 存储过程可以调用自定义函数; 存储过程中禁止使用全局性质的临时表; 代码书写规范 在创建存储过程的开始处应有注释,说明该存储过程的功能,存储过程的输入、输出参数的含义。 对于存储过程中功能相对独立的SQL代码段给出注释描述功能用途; 尽量保证SQL语句的执行顺序,对于每一次的执行单元应尽量保持先读后写的顺序; 所改变的SQL Server的系统参数,设置应在退出存储过程时还原(如 SET NOCOUN等); 关键字应尽量保持大写; 字段逗号,运算符等操作符之间有空格相隔; 注意缩进,保持存储过程的可读性; 输入、返回参数命名应尽量规则:前缀为参数数据类型的简

13、写,主体是参数描述常用数据类型简写如下:int i,char chr,nvarchar vch等可参照数据类型规范,参数描述使用英文,单词的第一个字母大写;例子:CREATE PROCEDURE dbo.SP_ST_StockInspect QueryDate datetime = 2003-11-1, QueryCondition nvarchar(4000) = N, ComUnitNo int = 1 AS /*在库品待检表QueryDate 查询日期QueryCondition 查询条件ComUnitNo 第几辅计量编号*/ SET NOCOUNT ONDECLARE strSql N

14、VARCHAR(4000) DECLARE strSql1 NVARCHAR(4000)DECLARE sQty as NVARCHAR(4000) SET strSql=Nexec Prc_SCM_GetStockFuc_STSELECT CONVERT(NVARCHAR(400),) AS sQty, CONVERT(NVARCHAR(400),) AS sNum , convert(nvarchar(400),) AS sBQty, CONVERT(NVARCHAR(400),) AS sBNum, convert(nvarchar(400),) AS sInQty, CONVERT(N

15、VARCHAR(400),) AS sInNum , -预计入 convert(nvarchar(400),) AS sOutQty, CONVERT(NVARCHAR(400),) AS sOutNum , convert(nvarchar(400),) AS sBInQty, CONVERT(NVARCHAR(400),) AS sBInNum , convert(nvarchar(400),) AS sBOutQty, CONVERT(NVARCHAR(400),) AS sBOutNum INTO #tmpFuc where 1=0EXECUTE SP_EXECUTESQL strSq

16、lSELECT sQty=sQty, snum=sNum, sbatchQty=sBQty, sbatchnum=sBNum FROM #tmpFucset iPreDays=(select isnull(cvalue,0) from accinformation where cname=NiPreInspectDays)set iYQDays=(select isnull(cvalue,0) from accinformation where cname=NiYQInspectDays).SET NOCOUNT OFF4. 自定义函数规范 自定义函数的代码与注释书写规范类似于存储过程; 自定

17、义函数应看作除了SQL语句外最小执行单位; 自定义函数中不能调用存储过程; 自定义函数中只能对表进行操作,不允许对视图进行操作; 如果自定义函数返回的是数据集,数据量较大时,尽量使用Join语句关联查询,少时用IN条件语句; 自定义函数尽量不要用到条件列、查询列中,因为要进行全表数据计算,影响查询性能,可以用于查询条件中,尽量用于查询条件右侧,使用固定值。例子:ALTER FUNCTION dbo.FN_GetLastBOM(PartId int,CurDate varchar(20)/* 得到最后版本的BOMID PartId 母件物料Id CurDate 版本生效日期*/RETURNS i

18、ntASBEGIN declare BomID as int select top 1 BomID=b.bomid from bom_parent p inner join bom_bom b on p.bomid=b.bomid where p.ParentId=PartId and CurDate between b.VersionEffDate and b.VersionEndDate order by b.VersionEffDate desc if BomID is null set BomID=-1 RETURN(BomID)END5. 索引规范 创建索引原则: 在经常作为条件搜索

19、的列上创建索引; 保持索引中的数据量尽可能的少。 在主键上创建索引; 在关键、经常使用的外键上创建索引; 检索方式比较复杂时,应考虑创建复合索引,SQL 2005以上可以创建包含性索引。 在创建复合索引时,应该仔细考虑列的顺序。对索引中的所有列执行搜索或仅对前几列执行搜索时,复合索引才起作用;仅对后面的任意列执行搜索时,复合索引则没有用处。特别注意:考虑到执行速度,代码维护,代码的不可控等因素,数据库升级的兼容性等很多方面,一般情况下禁止使用“Select * from ”;三、 U8开发之脚本文件规则 数据库脚本文件是U8中对数据库操作语句汇总,通过编写脚本更改数据库元素达到增加新功能、修改

20、BUG的目的。U8中脚本文件的命名、具体存放位置需要遵循一定的规范,以划分不同类型的脚本,方便编写、阅读、运行和管理。 什么是脚本文件? 在开发中经常需要对数据库进行操作,如:增加表、字段,存储过程、触发器,修改表、字段、存储过程、触发器,修改数据等。这些SQL语句都统一存放在脚本文件中。主要脚本文件:结构脚本:对表结构的增删改脚本。视图脚本:对视图的增删改脚本。存储过程:对存储过程、触发器、函数的增删改脚本。数据脚本:对表数据的增删改脚本。 文件命名规范的目标本文主要介绍脚本文件的命名规则,不符合规则的命名会导致脚本执行出错,遵守同一命名规则也方便管理开发过程中的所有数据库脚本。 脚本文件如

21、何命名? 脚本文件的命名规则如下:数据库_SQL类型_产品_业务类型_语言.sql1. 脚本文件中执行数据库命名规范脚本名称中的数据库部分表示该脚本文件在哪个数据库中执行,具体值如下。表示说明SYSUFSystem数据库DATA账套库,UFDATA开头的数据库META元数据库,UFMeta开头的数据库(V8.70以后版本有元数据库)UTUUTU数据库(V11.0以后版本有UTU数据库)WorkFlowU8WorkFlow数据库(V8.70至V8.90版本有U8WorkFlow库,其他版本没有)MOMUFMOM数据库(V8.70至V8.90版本有UFMOM库,其他版本没有)如:SYS_STR_E

22、FNF_MIX_NL.SQL表示该脚本在UFSystem数据库运行。DATA_DATA_EFNF_MIX_NL.SQL表示该脚本在UFDATA开头的数据库运行。2. 脚本文件中SQL执行类型命名规范SQL类型说明文件中存放SQL语句的类型,总共有4个类型,且有执行的优先级顺序,具体值如下:表示说明执行顺序STR对表结构的操作1PRV对视图的操作2PRP对存储过程的操作3DATA对数据的操作4如:SYS_STR_EFNF_MIX_NL.SQL 表示该脚本修改的是UFSystem数据库的表结构。DATA_DATA_EFNF_MIX_NL.SQL 表示该脚本修改的是UFDATA开头数据库的表数据。3

23、. 脚本文件中产品与项目命名规范表示该脚本文件隶属的产品号,值对应UFSystem库UA_SubSys_Base表的cSub_ID字段,如果二次开发的插件没有产品号,该值可以自定义,但必须是“EF”开头,如EFNF表示南孚项目,长度不能超过6位。注意:二次开发脚本名称中的产品不能使用U8标准产品编号,否则会出现互相覆盖现象。如:SYS_STR_EFXXX_MIX_NL.SQLDATA_DATA_ EFXXX _MIX_NL.SQL 表示该脚本属于XXX二次开发项目。4. 脚本文件中业务类型命名规范业务类型表示该脚本文件涉及到的业务范围,如果某一脚本只用于修改权限,使用这个字段进行区分,具体值如

24、下:表示说明Menu菜单FR功能权限DR数据权限Vou单据Col栏目Query报表Start系统启用WF工作流EAI企业应用集成Mix混合类型,不做具体业务区分自定义值不超过5个英文字母如:SYS_STR_EFNF_WF_NL.SQL 表示该脚本内容与工作流相关。DATA_DATA_EFNF_MIX_NL.SQL 表示该脚本内容不区分业务类型,多种业务类型的脚本放在一个脚本文件中。5. 脚本文件中多语命名规范U8从V8.61开始支持多语言,数据库中与界面显示有关的表会包含多种语言数据,对多语言数据进行增删改时需要把sql脚本按照修改内容的语言进行区分,不同语言标识的脚本有执行的先后顺序。具体值如下:表示说明执行顺序NL脚本文件的内容与语言无关,STR、 PRV、PRP类型的脚本语言为NL类型1CN简体中文2TW繁体中文3EN英文脚本4如:SYS_STR_EFNF_WF_NL.SQL 表示该脚本内容与语言无关。DATA_DATA_EFNF_MIX_CN.SQL 表示该脚本内容修改的是简体中文的数据。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2