U8數(shù)據(jù)庫開發(fā)規(guī)范-二次開發(fā)_第1頁
U8數(shù)據(jù)庫開發(fā)規(guī)范-二次開發(fā)_第2頁
U8數(shù)據(jù)庫開發(fā)規(guī)范-二次開發(fā)_第3頁
U8數(shù)據(jù)庫開發(fā)規(guī)范-二次開發(fā)_第4頁
U8數(shù)據(jù)庫開發(fā)規(guī)范-二次開發(fā)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、- -U8二次開發(fā)數(shù)據(jù)庫開發(fā)規(guī)范、數(shù)據(jù)庫命名規(guī)則表、視圖、存儲過程、用戶定義的函數(shù)、索引前綴盡量大寫;使用英文命名;盡量用完整的詞,單詞的第一個字母大寫;對象的名稱應(yīng)盡量表明具體使用的含義表XX代表對象內(nèi)容。數(shù)據(jù)庫對象前綴示例備注數(shù)據(jù)表一般表產(chǎn)品號名稱GL_AccVouchIA_SummaryMPSSchedule產(chǎn)品業(yè)務(wù)數(shù)據(jù)表系統(tǒng)數(shù)據(jù)表UA_XXUA_Menu系統(tǒng)兀數(shù)據(jù),系統(tǒng)參數(shù),業(yè)務(wù)流程參數(shù)等的數(shù)據(jù)集合。索引主鍵索引PK_表名pk_bom_bomBOM資料表上主鍵索引非主鍵索引IX_表名_XX或1_表名_XXIX_AppVouchs_IDIX_IA_Subsidiary_ID_cVouTy

2、peIbombomidentcode約束外鍵約束FK_表名字段名其他FK_UA_Log_cAcc_Id默認值約束DF_名稱_XXDF_bom_bom_Status_27A唯一約束UQ_表名_XXUQ_UA_Group_CGroup_ID視圖視圖v_產(chǎn)品號_XX或vw產(chǎn)品號xxV_IA_rdrecords01V_mom_moallocatevwAPARdetailCM存儲過程存儲過程SP_產(chǎn)品號_xxSPXXSP_ST_Etl_RDDetailspSAReceive自定義函數(shù)自定義函數(shù)FN_產(chǎn)品號_XXFN_ua_group_withuser觸發(fā)器觸發(fā)器TR_產(chǎn)品號_XX不建議使用自定義類型自定

3、義類型UD產(chǎn)品號_XX表、視圖等字段命名表、視圖中字段都用英文命名,一般字段命名規(guī)則如下:數(shù)據(jù)類型的簡寫為小寫字母前綴;后面是該字段的名稱描述,應(yīng)盡量表明字段含義、使用完整單詞;如果名稱描述多個單詞組成,每個單詞的第一個字母都大寫具有特殊含義的后綴結(jié)尾。例:iMaxInCost(存貨總賬-最小入庫成本單價)|含義,;單詞第一個字母大寫|數(shù)據(jù)類型是浮點數(shù)(目前大多數(shù)使用Decimal)數(shù)據(jù)類型規(guī)范:數(shù)據(jù)類型縮寫簡寫使用說明字符類型charchrc定長字符型,8000字節(jié),字符使用varcharchrc變長字符型,8000字節(jié),普通的字符型均采用texttxtt或c文本型,存儲大量文字,備注文件等

4、ncharnchc定長的Unicode類型字符數(shù)據(jù),4000中文字節(jié)nvarcharchrc變長的Unicode類型字符數(shù)據(jù),4000中文字節(jié)ntexttxtt或cUnicode類型文本,可存儲230-1(2,147,483,647)個Unicode字符進bitbitb邏輯型,0:假,1:真binarybinbin定長的二進制數(shù)據(jù)類型,8000個字節(jié)制varbinarybinbin變長的二進制數(shù)據(jù)類型,8000個字節(jié)imageimgimg或bin圖像,office,視頻,音頻等日期datetimedtmd日期和時間。需要精確定位時間時使用,8個字節(jié)intinti整型(-231231),用于一般

5、數(shù)字型bigintbini長整型(-2”632”63),浮點數(shù)floatflotf浮點(-1.79E+3081.79E+308)Decimaldemdem原系統(tǒng)都是用i表示定點精度和小數(shù)位數(shù)。使用最大精度時,有效值從-1038+1至卩1038-1moneymnym金錢類型,定點精度和小數(shù)位數(shù)。特殊類型Uniqueidentifierguiduid一個全局唯一的標(biāo)識號Cursorcurcur游標(biāo)時間戳TimestampUFTSUFTS字段名稱為:UFTS,沒有前后綴。特殊字段,特殊含義字段命名規(guī)范項目數(shù)據(jù)類型規(guī)則備注nvarchar,Char,chrID單據(jù)主鍵ID;單據(jù)及相關(guān)數(shù)據(jù)的唯IDuni

6、queidentifier或在表中使用的GUID類型數(shù)據(jù);cIDnvarchar,CharchrCode單據(jù)號chrNO有規(guī)則的編碼編碼或cCodecNOnvarchar,CharchrName字段的名稱(如商品名稱,客戶名稱或名稱)cName金額float,DecimalflotdcmAmount,Amount各種金額表示float,DecimalflotQuantity,各種數(shù)量表示數(shù)量dcm或QuantityfQtydcmQtyiQty價格float,DecimalflotPrice,各種價格dcmPrice作廢Bit,int,tinyintbitNoUsed各種作廢標(biāo)志審核Bit,in

7、t,tinyintiAudit審核標(biāo)志Nvarchar,textchrNotes備注信息備注cNotestxtNotes注:以前有些不是按以上規(guī)則設(shè)計的,今后再添加的請按這些規(guī)則添加。數(shù)據(jù)類型的選用盡可能使用變長類型(除非數(shù)據(jù)列長度的確是固定的)。變長類型只存儲列中實際含有的內(nèi),檢索需要掃描的頁會減少。創(chuàng)建字符類型字段請使用UNICODE數(shù)據(jù)類型字段,使用nvarchar、nchar、ntext替換varchar、char、text類型,在插入和查詢時候使用N。用友U8二次開發(fā)數(shù)據(jù)庫規(guī)范- -二、數(shù)據(jù)庫語言規(guī)范觸發(fā)器規(guī)范由于數(shù)據(jù)表觸發(fā)器容易產(chǎn)生很多數(shù)據(jù)庫問題,一般情況下禁止使用觸發(fā)器。請使用系

8、統(tǒng)API的前后事件進行代碼編程。視圖規(guī)范不能在視圖上創(chuàng)建視圖,視圖不能產(chǎn)生視圖;禁止通過視圖修改數(shù)據(jù);禁止修改系統(tǒng)視圖;用注釋說明視圖的作用;應(yīng)盡量使用SQLServer的視圖生成器產(chǎn)生視圖;視圖中不要有ORDERBY排序語句;視圖中不要使用UNION聯(lián)合視圖;禁止使用“Select*from”,“SelectT.*”等語句;注意縮進,格式清楚;所有關(guān)鍵字要大寫;字段逗號,運算符等操作符之間有空格相隔;例子:CREATEVIEWdbo.V_IA_rdrecords32/*銷售出庫單未記賬單據(jù)*/ASSELECTRdrecord.bRdFlag,rdrecord.CBusType,Rdrecor

9、d.cBusCode,Rdrecord.ccodeAScVouCode,rdrecords.AutoIDASID,Rdrecords.iquantity,rdrecords.iunitcost,rdrecords.iprice,Rdrecords.cVouchCodeAScBatchCode,Rdrecords.cbaccounterAScAccounter,rdrecord.cMaker,CAST(NULLASTINYINT)ASbFlag,CAST(NULLASBIT)ASbMoneyFlag,(CASEWHENrdrecord.cVouchType=N32THEN1ELSE0END)as

10、bSale,rdrecord.cDefine1,rdrecord.cDefine2,rdrecord.cDefine3,rdrecord.cDefine4,FROMrdrecords32RdrecordsINNERJOINrdrecord32rdrecordONrdrecords.id=rdrecord.idandisnull(rdrecords.cbaccounter,)=LEFTJOINWareHouseONWareHouse.cWhcode=rdrecord.cWhCodeLEFTJOINSO_SODetailsONrdrecords.iorderdid=SO_SODetails.iso

11、sidAndrdrecords.iordertype=1-銷售訂單LEFTJOINSO_SOMainONso_sodetails.id=so_somain.id存儲過程規(guī)范編寫存儲過程原則將每個存儲過程完成一項單獨的任務(wù);存儲過程可以調(diào)用存儲過程;存儲過程可以調(diào)用自定義函數(shù);存儲過程中禁止使用全局性質(zhì)的臨時表;代碼書寫規(guī)范在創(chuàng)建存儲過程的開始處應(yīng)有注釋,說明該存儲過程的功能,存儲過程的輸入、輸出參數(shù)的含義。對于存儲過程中功能相對獨立的SQL代碼段給出注釋描述功能用途;盡量保證SQL語句的執(zhí)行順序,對于每一次的執(zhí)行單元應(yīng)盡量保持先讀后寫的順序所改變的SQLServer的系統(tǒng)參數(shù),設(shè)置應(yīng)在退出存儲

12、過程時還原(如SETNOCOUN等)關(guān)鍵字應(yīng)盡量保持大寫;字段逗號,運算符等操作符之間有空格相隔;注意縮進,保持存儲過程的可讀性;輸入、返回參數(shù)命名應(yīng)盡量規(guī)則:前綴為參數(shù)數(shù)據(jù)類型的簡寫,主體是參數(shù)描述常用數(shù)據(jù)類型簡寫如下:inti,charchr,nvarcharvch等可參照數(shù)據(jù)類型規(guī)范,參數(shù)描述使用英文,單詞的第一個字母大寫;例子:CREATEPROCEDUREdbo.SP_ST_StockInspectQueryDatedatetime=2003-11-1,QueryConditionnvarchar(4000)=N,ComUnitNoint=1用友U8二次開發(fā)數(shù)據(jù)庫規(guī)范- -AS/*在

13、庫品待檢表QueryDateQueryCondition查詢?nèi)掌诓樵儣l件ComUnitNo第幾輔計量編號*/SETNOCOUNTONDECLAREstrSqlNVARCHAR(4000)DECLAREstrSql1NVARCHAR(4000)DECLAREsQtyasNVARCHAR(4000)SETstrSql=NexecPrc_SCM_GetStockFuc_STSELECTCONVERT(NVARCHAR(400),)ASsQty,CONVERT(NVARCHAR(400),)ASsNum,convert(nvarchar(400),)ASsBQty,CONVERT(NVARCHAR(4

14、00),)ASsBNum,convert(nvarchar(400),)ASsInQty,CONVERT(NVARCHAR(400),)ASsInNum,-預(yù)計入convert(nvarchar(400),)ASsOutQty,CONVERT(NVARCHAR(400),)ASsOutNum,convert(nvarchar(400),)ASsBInQty,CONVERT(NVARCHAR(400),)ASsBInNum,convert(nvarchar(400),)ASsBOutQty,CONVERT(NVARCHAR(400),)ASsBOutNumINTO#tmpFucwhere1=0E

15、XECUTESP_EXECUTESQLstrSqlSELECTsQty=sQty,snum=sNum,sbatchQty=sBQty,sbatchnum=sBNumFROM#tmpFucsetiPreDays=(selectisnull(cvalue,0)fromaccinformationwherecname=NiPreInspectDays)setiYQDays=(selectisnull(cvalue,0)fromaccinformationwherecname=NiYQInspectDays)SETNOCOUNTOFF自定義函數(shù)規(guī)范自定義函數(shù)的代碼與注釋書寫規(guī)范類似于存儲過程;自定義函

16、數(shù)應(yīng)看作除了SQL語句外最小執(zhí)行單位;自定義函數(shù)中不能調(diào)用存儲過程;自定義函數(shù)中只能對表進行操作,不允許對視圖進行操作如果自定義函數(shù)返回的是數(shù)據(jù)集,數(shù)據(jù)量較大時,盡量使用Join語句關(guān)聯(lián)查詢,少時用IN條件語句;自定義函數(shù)盡量不要用到條件列、查詢列中,因為要進行全表數(shù)據(jù)計算,影響查詢性能,可以用于查詢條件中,盡量用于查詢條件右側(cè),使用固定值。例子:ALTERFUNCTIONdbo.FN_GetLastBOM(PartIdint,CurDatevarchar(20)/*得到最后版本的BOMIDPartId母件物料IdCurDate版本生效日期*/RETURNSintASBEGINdeclareB

17、omIDasintselecttop1BomID=b.bomidfrombom_parentpinnerjoinbom_bombonp.bomid=b.bomidwherep.ParentId=PartIdandCurDatebetweenb.VersionEffDateandb.VersionEndDateorderbyb.VersionEffDatedescifBomIDisnullsetBomID=-1RETURN(BomID)END索引規(guī)范創(chuàng)建索引原則:在經(jīng)常作為條件搜索的列上創(chuàng)建索引;保持索引中的數(shù)據(jù)量盡可能的少。在主鍵上創(chuàng)建索引;在關(guān)鍵、經(jīng)常使用的外鍵上創(chuàng)建索引;檢索方式比較復(fù)雜時

18、,應(yīng)考慮創(chuàng)建復(fù)合索引,SQL2005以上可以創(chuàng)建包含性索引。在創(chuàng)建復(fù)合索引時,應(yīng)該仔細考慮列的順序。對索引中的所有列執(zhí)行搜索或僅對前幾列執(zhí)行搜索時,復(fù)合索引才起作用;僅對后面的任意列執(zhí)行搜索時,復(fù)合索用友U8二次開發(fā)數(shù)據(jù)庫規(guī)范- -引則沒有用處。特別注意:考慮到執(zhí)行速度,代碼維護,代碼的不可控等因素,數(shù)據(jù)庫升級的兼容性等很多方面,一般情況下禁止使用“Select*from”;三、U8開發(fā)之腳本文件規(guī)則數(shù)據(jù)庫腳本文件是U8中對數(shù)據(jù)庫操作語句匯總,通過編寫腳本更改數(shù)據(jù)庫元素達到增加新功能、修改BUG的目的。U8中腳本文件的命名、具體存放位置需要遵循一定的規(guī)范,以劃分不同類型的腳本,方便編寫、閱讀、

19、運行和管理。什么是腳本文件?在開發(fā)中經(jīng)常需要對數(shù)據(jù)庫進行操作,如:增加表、字段,存儲過程、觸發(fā)器,修改表、字段、存儲過程、觸發(fā)器,修改數(shù)據(jù)等。這些SQL語句都統(tǒng)一存放在腳本文件中。主要腳本文件:結(jié)構(gòu)腳本:對表結(jié)構(gòu)的增刪改腳本。視圖腳本:對視圖的增刪改腳本。存儲過程:對存儲過程、觸發(fā)器、函數(shù)的增刪改腳本。數(shù)據(jù)腳本:對表數(shù)據(jù)的增刪改腳本。文件命名規(guī)范的目標(biāo)本文主要介紹腳本文件的命名規(guī)則,不符合規(guī)則的命名會導(dǎo)致腳本執(zhí)行出錯,遵守同一命名規(guī)則也方便管理開發(fā)過程中的所有數(shù)據(jù)庫腳本。腳本文件如何命名?腳本文件的命名規(guī)則如下:數(shù)據(jù)庫_SQL類型產(chǎn)品業(yè)務(wù)類型語言.sql1.腳本文件中執(zhí)行數(shù)據(jù)庫命名規(guī)范腳本名稱

20、中的數(shù)據(jù)庫部分表示該腳本文件在哪個數(shù)據(jù)庫中執(zhí)行,具體值如下。表示說明SYSUFSystem數(shù)據(jù)庫DATA賬套庫,UFDATA開頭的數(shù)據(jù)庫META元數(shù)據(jù)庫,UFMeta開頭的數(shù)據(jù)庫(V8.70以后版本有元數(shù)據(jù)庫)UTUUTU數(shù)據(jù)庫(V11.0以后版本有UTU數(shù)據(jù)庫)WorkFlowU8WorkFlow數(shù)據(jù)庫(V8.70至V8.90版本有U8WorkFlow庫,其他版本沒有)用友U8二次開發(fā)數(shù)據(jù)庫規(guī)范- -MOMUFMOM數(shù)據(jù)庫(V8.70至V8.90版本有UFMOM庫,其他版本沒有)如:SYS_STR_EFNF_MIX_NL.SQL表示該腳本在UFSystem數(shù)據(jù)庫運行。DATA_DATA_EFNF_MIX_NL.SQL表示該腳本在UFDATA開頭的數(shù)據(jù)庫運行。2.腳本文件中SQL執(zhí)行類型命名規(guī)范SQL類型說明文件中存放SQL語句的類型,總共有4個類型,且有執(zhí)行的優(yōu)先級順序,具體值如下:表示說明執(zhí)行順序STR對表結(jié)構(gòu)的操作1PRV對視圖的操作2PRP對存儲過程的操作3DATA對數(shù)據(jù)的操作4如:SYS_STR_EFNF_MIX_NL.SQL表示該腳本修改的是UFSystem數(shù)據(jù)庫的表結(jié)構(gòu)。DATA_DATA_EFNF_MIX_NL.SQL表示該腳本修改的是UFDATA開頭數(shù)據(jù)庫的表數(shù)據(jù)。3.表示該腳本文件隸屬的產(chǎn)品號,值對應(yīng)UFS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論