




已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
DotNet項目組開發(fā)規(guī)范修改記錄日期版本作者備注2009-5-5V1.0Fisher擬稿第一章 C# 、ASP.NET命名、編碼規(guī)范1、基本原則序號說明舉例1盡量讓人一看名稱就知道變量類型用途等信息。格式: 類型 + 名稱說明2命名空間格式: 公司 + 項目名 + 模塊名Sofmit.DVR.DVRLibary3所有能加 this 關鍵字的成員都加上 this 關鍵字this.flag4所有能加 this 關鍵字的成員都加上 this 關鍵字5單詞選用時,不要使用縮寫或者縮略詞作為標示符號名稱的一部分不使用未被廣泛接受的縮寫GetWindow不用 GetWin6要給類型名使用語意上有意義的名字、不不使用特有的關鍵字7不要使用未被廣泛接受的首字母縮寫詞8按照 Pascal、Camel 相結(jié)合的 大小寫 方式進行命名9公有變量都使用屬性訪問器,不使用任何公有變量10類型名全部使用 CLR 支持的類型名而不使用特定語言支持的類型名如 c# 中的int 應該使用CLR 中的 Int3211代碼簡單、易讀,先寫注釋再寫代碼12單個函數(shù)不允許超過50行代碼(特殊算法除外)13對于全局成員或者全局方法統(tǒng)一放到 以及各模塊通用方法Command中、需要隨時調(diào)用的集合,如當前登陸用于名,部門信息均使用緩存進行管理.14定義變量時候都加上他的作用域標示符,public private 等15所以的Html代碼 C# 代碼 JAVACRIPT 代碼 CSS代碼都分別放于不同的文件,要要在 aspx 頁面中放入 c#代碼、JAVASCRIPT、以及CSS代碼16為所有必填項目加入標識,為文本框加入特殊字符驗證、以及輸入長度限制驗證。17采用統(tǒng)一的系統(tǒng) 提示,將系統(tǒng)提示分類寫入資源文件中 調(diào)用時候從資源文件中讀取,避免直接在C#代碼中直接寫入文本信息,從而使系統(tǒng)提示不一致。2詳細約定2.1大小寫約定標識符大小寫方式示例類PascalAppDomain枚舉類型PascalErrorLevel枚舉值PascalFatalError事件PascalValueChanged異常類PascalWebException只讀的靜態(tài)字段PascalRedValue接口PascalIDisposable方法PascalToString命名空間PascalSystem.Drawing參數(shù)CameltypeName屬性PascalBackColor私有成員類型簡寫 + Pascal 方式iCount(int 類型的計數(shù)器)2.1常用類型簡寫類型簡寫命名舉例Int32iiCountInt64llCountStringssNameUInt32uiuiCountUInt64ululCountBytebbFlagBooleancan 、isisOver、 canWork 、isBegin等能標示真假的單詞作為前綴2.2常用控件、類前綴簡寫類型簡寫命名舉例標準控件ButtonbtnbtnCloseCheckBoxchkchkSelectCheckedListBoxcklcklSelectComboBoxcmbcmbSelectDateTimePickerdtpdtpDateLabellbllblTitleLinkLabelllbllbLabelListBoxlstlstSelectListViewlvwlvwListMaskedTextBoxmtxmtxTextMonthCalendarcdrcdrSelectNotifyIconicnicnNotifyNumeircUpDownnudnudNumberPictureBoxpicpicCarProgressBarprgprgProgressRadioButtonrdordoSelectRichTextBoxrtxrtxTestTextBoxtxttxtNameToolTiptiptipNameTreeViewtvwtvwCarWebBrowserwbswbsSina容器控件FlowLayoutPanelflpflpLayoutGroupBoxgrpgrpBasicPanelpnlpnlSettingSplitContainersplsplSplitTabControltabtabTempTableLayoutPaneltlptlpPlanel菜單和工具欄ContextMenuStripcmscmsMenuMenuStripmnsmnsMenuStatusStripssrssrStatusToolStriptsrtsrToolsToolStripContainertsctscTools數(shù)據(jù)DataSetdtsdtsStudentDataGridViewdgvdgvStudentBindingSourcebdsbdsStudentBindingNavigatorbdnbdnStudentReportViewerrpvrpvStudent對話框ColorDialogcldclbColorFolderBrowserDialogfbdfbdFolderFontDialogfndfndFontOpenFileDialogofdofdDialogSaveFileDialogsfdsfdDialog組件BackgroundWorkerbgwbgwWorkerDirectoryEntrydredreEntryDirectorySearcherdrsdrsDirectoryErrorProvidererrerrProviderEventLogevlevlLogFileSystemWatcherfswfswWatcherHelpProviderhlphlpProviderImageListimgimgListMessageQueuemsqmsqMessagePerformanceCounterpfcpfcCounterProcessprcprcProcessSerialPortsptsptPortServiceControllersclsclControllerTimertmrtmrTimer打印PageSetupDialogpsdpsdDialogPrintDialogprdprdDialogPrintDocumentpdcpdcDocumentPrintPreviewControlprvprvControlPrintPreviewDialogppdppdDialog水晶報表CrystalReportViewercrvcrvViewerReportDocumentrpdrpdDocument其他DomainUpDownduddudDomainHScrollBarhschscScrollPropertyGridprgprgGridSplittersplsplSplitterTrackBartrbtrbTrackVScrollBarvscvscScroll注:自定義類型命名對象的命名規(guī)則參見上面示例、以上為常用類型,的命名規(guī)則。未列出的命名將在項目中遇到以后補充。參見: /en-us/library/ms229042.aspx3編碼規(guī)范3.1引言 按照此規(guī)范來開發(fā)C#程序可帶來以下益處:1) 代碼的編寫保持一致性。2)提高代碼的可讀性和可維護性。3)在團隊開發(fā)一個項目的情況下,程序員之間可代碼共享易于代碼的回顧。本規(guī)范是初版,將在以后項目開發(fā)中逐步完善。3.2 文件組織 類名或文件名要簡短,不要超過2000LOC,將代碼分割開,使結(jié)構清晰。將每個類放在一個單獨的文件中,使用類名來命名文件名(當然擴展名是.cs)。這種約定會使大家工作更簡單。ASPX頁面讓ASPX頁面與C#代碼分開。ASPX頁面中不允許有警告信息出現(xiàn)。ASPX各種標簽以及語法符合W3C標準。3.3 目錄設計為每一個命名空間創(chuàng)建一個目錄。(用MyProject/TestSuite/TestTier作為MyProject.TestSuite.TestTier的路徑,而不用帶點的命名空間名做路徑)這樣可以更容易地將命名空間映射到目錄層次劃分。按照模塊劃分ASPX頁面存放位置。3.4 換行當一個表達式超過一行時,根據(jù)這些通用原則進行處理: 在逗號后換行。 在操作符后換行。 在高層換行而不要在低層處換行。 折行后對齊上一行語句同一層的表達式起始位置。方法調(diào)用換行示例: longMethodCall(expr1, expr2, expr3, expr4, expr5);算術表達式換行示例:推薦:var = a * b / (c - g + f) + 4 * z;不好的格式應避免:var = a * b / (c - g + f) + 4 * z;推薦使用第一種方法,因為是在括號表達式之外折行(高層次折行原則)。注意要用制表符到縮進的位置,然后用用空格到折行的位置。在我們的例子中是: var = a * b / (c - g + f) + .4 * z;表示是制表符,.表示是空格符。(制表符后是空白是用制表符縮進)。一個好的編碼習慣就是在所用的編輯器中顯示制表符和空格符。3.2 空白利用空格進行縮進從未有過統(tǒng)一的標準。一些人喜歡用兩個空格,一些人喜歡用四個空格而還有一些人喜歡用八個空格,甚至有的人喜歡用更多的空格。好的做法是用制表符。制表符有一些優(yōu)點: 每個人都可以設置他們自己喜歡的縮進層級。 它僅僅是1個字符而不是2,4,8等等,因此它將減少輸入(甚至因為自動縮進,有時你不得不手工設置縮進或取消設置,等等諸如此類的操作)。 如果你想增加或減少縮進,可以標記一塊,使用Tab增加縮進層級而用Shift-Tab減少縮進層級。這幾乎對于任何文本編輯器都是適用的。這里,我們定義制表符為標準縮進符。不要用空格縮進用制表符!3.5. 聲明1)每行的聲明數(shù)推薦每行只有一個聲明,因為它可以方便注釋。int level; / indentation levelint size; / size of table當聲明變量時,不要把多個變量或不同類型的變量放在同一行,例如:int a, b; /What is a? What does b stand for?上面的例子也顯示了變量名不明顯的缺陷。當命名變量時要清晰。2) 初始化局部變量一旦被聲明就要初始化。例如:string name = myObject.Name;或int val = time.Hours;注意:如果你初始化一個dialog,設計使用using語句:using (OpenFileDialog openFileDialog = new OpenFileDialog() .3) 類和接口聲明當編寫C#類和接口時,應遵循以下格式化規(guī)則: 在方法名和圓括號“(”開始它的參數(shù)列表之間不要使用空格。 在聲明語句的下一行以大括號標志開始。 以結(jié)束,通過它自身的縮進與相應的開始標志匹配。例如:Class MySample : MyClass, IMyInterface int myInt; public MySample(int myInt) this.myInt = myInt ; void Inc() +myInt; void EmptyMethod() 對于一個大括號的位置參考10.1部分。6. 語句6.1 簡單語句每行都應該只包含一條語句。6.2 返回語句一個返回語句不要用最外圍圓括號。不用:return (n * (n + 1) / 2);用: return n * (n + 1) / 2;6.3 If, if-else, if else-if else 語句if, if-else and if else-if else 語句看起來應該像這樣:if (condition) DoSomething(); .if (condition) DoSomething(); . else DoSomethingOther(); .if (condition) DoSomething(); . else if (condition) DoSomethingOther(); . else DoSomethingOtherAgain(); .6.4 for / foreach 語句一個for語句應該如下形式:for (int i = 0; i 5; +i) .或者放置一行(考慮用一個while語句代替)for (initialization; condition; update) ;foreach語句應該像下面所示 : foreach (int i in IntList) .注意:在一個循環(huán)中,即使只有一個語句通常也用括弧括起來。6.5 While/do-while 語句一個while語句應該寫成如下形式:while (condition) .一個空while語句應該是以下格式:while (condition) ;一個do-while語句應該是如下格式:do . while (condition);6.6 Switch 語句一個switch語句應該如下格式:switch (condition) case A: . break;case B: . break;default: . break;6.7 Try-catch 語句一個try-catch statement語句應該遵循以下格式:try . catch (Exception) ortry . catch (Exception e) .ortry . catch (Exception e) . finally .7. 空白7.1 空行空行提高可讀性。它們分開那些邏輯上自身相關聯(lián)的代碼塊。兩行空格行應該用于以下之間: 一個源文件的邏輯段。 類和接口定義(每個文件只定義一個類或接口以避免這種情況)。一個空格行應該總是被用于以下之間: 方法 屬性 一個方法中的局部變量和它的第一條語句 一個方法中的邏輯段為了提高可讀性。注意空白行必須被縮進因為它們包括一條語句這使得插入這些行更容易。7.2 內(nèi)部空格在一個逗號或一個分號之后應該由一個空格,例如:TestMethod(a, b, c); 不要用: TestMethod(a,b,c)或TestMethod( a, b, c );單個空格包圍操作符(除了像加的一元操作符和邏輯非),例: a = b; / dont use a=b;for (int i = 0; i 10; +i) / dont use for (int i=0; i10; +i)/ or/ for(int i=0;i10;+i)7.3 表格格式化行的一個邏輯塊應該作為一個表格被格式化:string name = Mr. Ed;int myValue = 5;Test aTest = Test.TestYou;對于表格的格式化用空格而不用制表符因為在某些制表符縮進設置會使表格格式化看起來是很奇怪。8. 命名習慣8.1 大寫格式8.1.1 Pascal Casing習慣大寫每個單詞的第一個字母(就像在TestCounter)。8.1.2 Camel Casing習慣除了第一個單詞外大寫每個單詞的第一個字母例如testCounter。8.1.3 全大寫情況對于只有一兩個字符縮寫組成的標識符才用全大寫的情況。有三個或更多個字符組成的標識符應該用Pascal情況代替。例如:public class Math public const PI = . public const E = . public const feigenBaumNumber = .8.2. 命名指導方針通常根據(jù)指導方針在名字和命名內(nèi)用低線字符對Hungarian 符號來說被認為是壞習慣。Hungarian 符號是一組應用于命名來映射變量類型的前綴和后綴。這種命名風格在早期的Windows程序中被廣泛應用,但現(xiàn)在被取消了至少不提倡了。如果你遵循這個指南用Hungarian 符號是不允許的。但要記住一個好的變量名描述了語義而不失類型。對于這個規(guī)則有個例外就是GUI編碼。包括像按鈕(buttton)的GUI元素,所有領域和變量名都應該帶有它們類型名的后綴不是縮寫。例如:System.Windows.Forms.Button cancelButton;System.Windows.Forms.TextBox nameTextBox;8.2.1 類命名指導方針 類命名必須是名詞或名詞短語。 UsePascal 情況參考8.1.1 不要用任何類前綴8.2.2 接口命名指導方針Guidelines 用可以描述行為的名詞或名詞短語或形容詞命名接口。(例如IComponent 或 IEnumberable) 用Pascal情況(參考8.1.1) 用I作為名字的前綴,它應該緊跟一個大寫字母(接口名的第一個字母)8.2.3 枚舉命名指導方針 用Pascal情況命名枚舉值名字和類型名字 枚舉類型和枚舉值不要前綴 對于枚舉用單一名字 對于位領域用復數(shù)名字8.2.4 只讀和常量命名 用名詞,名詞短語或名詞的縮寫命名靜態(tài)領域 使用Pascal 情況(參考8.1.1)8.2.5 參數(shù)/非常量領域命名 一定要用描述性名字,應該能夠足夠表現(xiàn)變量的意義和它的類型。但一個好的名字應該基于參數(shù)的意義。 使用Camel情況(參考8.1.2)8.2.6 變量命名 計數(shù)變量當用在瑣碎的計數(shù)循環(huán)式更適宜叫i, j, k, l, m, n。(參考10.2例如對全局計數(shù)的更智能命名等等) 使用Camel情況(參考8.1.2)8.2.7 方法命名 用動詞或動詞短語命名方法。 使用Pascal(參考8.1.2)8.2.8 屬性命名 用名詞或名詞短語命名屬性 使用Pascal 情況(參考8.1.2) 考慮用與其類型相同的名字命名一個屬性8.2.9 事件命名 用事件處理器后綴命名事件處理器 用sender 和 e命名兩個參數(shù) 使用Pascal情況(參考8.1.1) 用EventArgs 后綴命名事件參數(shù) 用現(xiàn)在和過去時態(tài)命名有前綴和復制概念的事件名字。 考慮用一個動詞命名事件。8.2.10 大寫總結(jié)Type Case NotesClass / Struct Pascal Casing Interface Pascal Casing Starts with IEnum values Pascal Casing Enum type Pascal Casing Events Pascal Casing Exception class Pascal Casing End with Exceptionpublic Fields Pascal Casing Methods Pascal Casing Namespace Pascal Casing Property Pascal Casing Protected/private Fields Camel Casing Parameters Camel Casing 9. 編程習慣9.1 可見性不要任何公共實例或類變量,讓它們?yōu)樗接械摹τ谒接谐蓡T最好不用“private”作修飾語什么都不寫。私有是默認情況,每個C#程序員都應該知道這一點。用屬性代替。你可以用公共靜態(tài)(或常量)對于這個規(guī)則是以例外,帶它不應該是規(guī)則。9.2 沒有“幻”數(shù)不要用幻數(shù),也就是在源代碼中直接用常數(shù)值。替代這些后者以防變化(比方說,你的應用程序可以處理3540用戶代替427你的代碼在50行中通過分散25000LOC)是錯誤和沒有收益的。聲明一個帶有數(shù)的常量來代替:public class MyMath public const double PI = 3.14159.10. 編碼舉例10.1 Brace placement examplenamespace ShowMeTheBracket public enum Test TestMe, TestYoupublic class TestMeClass Test test; public Test Test get return test; set test = value; void DoSomething() if (test = Test.TestMe) /.stuff gets done else /.other stuff gets done 括弧應該在以下情況之后以新行開始: 命名空間聲明(注意這在0.3版本中是新添的與0.2版本不同) 類/接口/結(jié)構聲明 方法聲明10.2 變量命名舉例代替:for (int i = 1; i num; +i) meetsCriteriai = true;for (int i = 2; i num / 2; +i) int j = i + i;while (j = num) meetsCriteriaj = false;j += i;for (int i = 0; i num; +i) if (meetsCriteriai) Console.WriteLine(i + meets criteria);try intelligent naming :for (int primeCandidate = 1; primeCandidate num; +primeCandidate)isPrimeprimeCandidate = true;for (int factor = 2; factor num / 2; +factor) int factorableNumber = factor + factor;while (factorableNumber = num) isPrimefactorableNumber = false;factorableNumber += factor;for (int primeCandidate = 0; primeCandidate num; +primeCandidate)if (isPrimeprimeCandidate) Console.WriteLine(primeCandidate + is prime.);注意:索引變量通常叫i, j, k 等等。但Note: Indexer variables generally should be called i, j, k etc. But 萬一像這樣,使得重新考慮這個原則更有意義。一般來說,當同一個計數(shù)器或索引器被重用,給它們有意義的名字。第二章 數(shù)據(jù)庫設計、編碼、命名規(guī)范從數(shù)據(jù)庫的設計原則 設計文檔幾方面論述數(shù)據(jù)庫設計的規(guī)范思想及命名規(guī)則。 2.1數(shù)據(jù)庫應用結(jié)構 根據(jù)對一般業(yè)務系統(tǒng)的分析,將數(shù)據(jù)庫和程序系統(tǒng)統(tǒng)一進行整體描述,展示數(shù)據(jù)庫的 表之間以及與程序模塊間的關系。 2.2 數(shù)據(jù)表和程序模塊的分類 根據(jù)“處理特點”,將數(shù)據(jù)表和程序模塊進行分類如下: 數(shù)據(jù)表分類:業(yè)務數(shù)據(jù)表、基本編碼表、輔助編碼表、系統(tǒng)信息表、累計數(shù)據(jù)表、結(jié) 算數(shù)據(jù)表、決策數(shù)據(jù)表。 程序模塊分類:初始化、業(yè)務處理、完整性檢測與修正、結(jié)算處理、統(tǒng)計處理。 2.2.1 數(shù)據(jù)表分類說明 業(yè)務數(shù)據(jù)表:記錄業(yè)務發(fā)生的過程和結(jié)果。如,合同、出倉單、申請單、憑證。 基本編碼表:描述業(yè)務實體的基本信息和編碼。如,產(chǎn)品、客戶、供應商、雇員。 輔助編碼表:描述屬性的列表值。如,合同類型、職稱、民族、付款方式。 系統(tǒng)信息表:存放與系統(tǒng)操作、業(yè)務控制有關的參數(shù)。如,用戶信息、權限、用戶配 置信息、成本核算方式。 累計數(shù)據(jù)表:存放業(yè)務的當前值和累計值。如,當前庫存、當前存款、累計銷售、累 計支出、應收賬款。 結(jié)算數(shù)據(jù)表:存放各個時期末的結(jié)存數(shù)。如,月末庫存、月末銀行存款、應收賬款月 結(jié)。決策數(shù)據(jù)表:存放各個時期內(nèi)發(fā)生的統(tǒng)計值。如,月銷售統(tǒng)計、月回款統(tǒng)計、出入庫 統(tǒng)計。 2.2.2 程序模塊分類說明 初始化:系統(tǒng)運行前對系統(tǒng)進行數(shù)據(jù)的初始化。如,庫存初始化。 業(yè)務處理:業(yè)務過程的控制和結(jié)果記錄。如,合同錄入、費用審批、出入庫。 完整性檢測與修正:對累計數(shù)據(jù)表進行檢查并自動修正。如對當前庫存、當前存款、 累計銷售的檢查和重新計算。 結(jié)算處理:計算并記錄各個時期末的結(jié)存數(shù)。庫存月結(jié)、應收賬款月結(jié)。 統(tǒng)計處理:計算并記錄各個時期內(nèi)發(fā)生的統(tǒng)計數(shù)。如,統(tǒng)計月銷售、統(tǒng)計月回款、統(tǒng) 計出入庫。 2.3 數(shù)據(jù)表間的關系 業(yè)務數(shù)據(jù)表基本編碼表 主-外鍵關系。如,合同表客戶編碼表; 業(yè)務數(shù)據(jù)表輔助編碼表 主-外鍵關系。如,合同表付款方式; 業(yè)務數(shù)據(jù)表、累計數(shù)據(jù)表、結(jié)算數(shù)據(jù)表:累計數(shù)據(jù)表=結(jié)算數(shù)據(jù)表(上期末) + 業(yè)務數(shù) 據(jù)表(本期內(nèi)發(fā)生)。如當前庫存=上月末庫存數(shù)+(本月入庫數(shù)-本月出庫數(shù)); 決策數(shù)據(jù)表業(yè)務數(shù)據(jù)表 決策數(shù)據(jù)表的數(shù)據(jù)是由業(yè)務數(shù)據(jù)表中數(shù)據(jù)導出(統(tǒng)計)的; 2.4 數(shù)據(jù)表與程序模塊間的關系 由一個例子(倉庫管理)來說明數(shù)據(jù)表與程序模塊之間的關系: . 系統(tǒng)使用前,由初始化模塊對庫存數(shù)(累計數(shù)據(jù)表)和上月末庫存數(shù)(結(jié)存數(shù)據(jù)表)進 行初始化; . 當有入庫業(yè)務發(fā)生時,由入庫模塊(業(yè)務處理)將入庫單錄入并保存到入庫單明細帳( 業(yè)務數(shù)據(jù)表)中,同時將入庫數(shù)累加到庫存數(shù)(累計數(shù)據(jù)表)中; . 定期或不定期,庫存數(shù)核算模塊(檢查完整性檢測與修正)根據(jù)上月末的庫存數(shù)(結(jié)存 數(shù)據(jù)表)、本月已發(fā)生數(shù)(業(yè)務數(shù)據(jù)表)檢查當前的庫存數(shù)(累計數(shù)據(jù)表)是否符合,不符合 則給出提示,可手工或自動進行更正(當前庫存數(shù)=上月末庫存數(shù)+本月入庫數(shù)-本月出庫數(shù) ); . 每月初,進行上月的月結(jié)處理。月結(jié)模塊(結(jié)算處理)根據(jù)上月初的庫存數(shù)(結(jié)存數(shù)據(jù) 表)、上月發(fā)生數(shù)(業(yè)務數(shù)據(jù)表)計算出上月末的庫存數(shù)(累計數(shù)據(jù)表)。公式為:上月末庫 存數(shù)=上月初庫存數(shù)+上月入庫數(shù)-上月出庫數(shù); . 每個月月結(jié)后,庫存業(yè)務月統(tǒng)計模塊(統(tǒng)計處理)統(tǒng)計上月的各種庫存商品的入庫和 出庫數(shù),便于查詢和生成報表,也作為決策支持的數(shù)據(jù)基礎。 2.5 數(shù)據(jù)表命名時對數(shù)據(jù)表分類的考慮 . 業(yè)務數(shù)據(jù)表:t_d_。如銷售系統(tǒng)的合同表 t_d_SH_Contract 或 t_d_SH_合同; . 基本編碼表:t_b_。如客戶編碼表t_b_Customer 或 t_b_客 戶; . 輔助編碼表:t_a_。如合同類別t_a_ContType 或 t_a_合同 類別; . 系統(tǒng)信息表:t_s_。如用戶表t_s_User 或 t_s_用戶; . 累計數(shù)據(jù)表:t_t_。如當前庫存表t_t_SO_Stock 或 t_t_SO_ 庫存; . 結(jié)算數(shù)據(jù)表:t_c_。如庫存月結(jié)表t_c_SO_StockMonth 或 t_c_SO_庫存月結(jié); . 決策數(shù)據(jù)表:t_w_。如月銷售統(tǒng)計表t_w_SH_SellMonth 或 t_w_SH_月銷售統(tǒng)計; 注:內(nèi)的內(nèi)容表示可選。如“t_s_”表示t_s_SH_User 和 t_s_User 都是符合規(guī)則的。 2.6 數(shù)據(jù)庫結(jié)構原則 規(guī)定除數(shù)據(jù)庫設計所遵循的范式外的一些適用原則,在遵循數(shù)據(jù)庫設計范式的基礎上 ,合理地劃分表,添加狀態(tài)和控制字段等。 2.6.1 輔助編碼表 為了使輔助編碼表能起到預期的效能,又不因過多的輔助編碼表難以管理,故對輔助 編碼表的使用作如下規(guī)定: 1. 當某輔助編碼表的編碼允許用戶添加時,應設計成“獨立”的數(shù)據(jù)表;否則,將不 允許用戶添加編碼的各輔助編碼表合并成一個“通用”的輔助編碼表。 2. “獨立”的輔助編碼表與主表的列采用主-外約束保證列數(shù)據(jù)完整性。 3. “通用”的輔助編碼表與各主表間沒有約束關系,主表列的數(shù)據(jù)完整性由列說明的 “域”來保證。 4. “通用”的輔助編碼表除編碼和名稱列外,還有一個標識列,用來標識合并前的各 碼表,該標識列+編碼列作為該表的主鍵。 5. 對于“獨立”的輔助編碼表,用戶只可添加新的編碼和改變名稱,并且不能改變一 個編碼所代表的意義;對于“通用”的輔助編碼表,原則上不允許用戶修改,或只有限地 允許修改名稱。 2.6.2 基本編碼表 1. 基本編碼表可以有如下的標識列:內(nèi)編碼、外編碼、助記碼、簡稱、全稱。內(nèi)編碼 (唯一編碼)作為主鍵有程序自動生成,用戶不可見;外編碼(唯一編碼)由用戶按某種 規(guī)則自行定義,用戶可見;助記碼為拼音縮,方便錄入,不唯一,重碼時由列表選擇;簡 稱用于列表顯示和報表,以便縮短行寬。以上的列在實現(xiàn)時可視情況和習慣加以刪減。 2. 當碼表的列較多且也行較多時,可將上述的標識列和常用的信息存于一個表,將其 它的信息另表存儲。 2.6.3 業(yè)務數(shù)據(jù)表 1. 設有錄入人和錄入日期列,由系統(tǒng)自動記錄。 2. 記錄單據(jù)的表中設置“自動單據(jù)號”,由兩個字符開始以區(qū)分單據(jù)類型,后跟一數(shù) 字序列表示序號。自動單據(jù)號由系統(tǒng)自動生成,作為主表的主鍵,不允許用戶修改。 當有對應的紙質(zhì)單據(jù)時,設置“單據(jù)號”用于記錄紙質(zhì)單據(jù)的單據(jù)號。 3. 明細表中設有行序號,自動記錄行的錄入順序。 4. 設置“存檔標記”列,用于抽取數(shù)據(jù)到?jīng)Q策數(shù)據(jù)庫時的更新標記。插入新行或修改 已有行時設置該標記;數(shù)據(jù)抽取后清除該標記。 5. 對于用于查詢過濾條件的列,不可為空,以免行“丟失”。 6. 對于數(shù)值列,不可為空,“0”作為默認值。 7. 對于必要的“冗余”列,如客戶名稱,應有相應的程序保持各“冗余”列的同一性 ,以免出現(xiàn)異議。 8. 設置“過程狀態(tài)”列和“記錄狀態(tài)”列。過程狀態(tài)列用于記錄如創(chuàng)建、審核、記賬 、沖紅等狀態(tài);記錄狀態(tài)用于記錄如有效、刪除等狀態(tài)。 2.7 數(shù)據(jù)庫命名原則 2.7.1 表名 . 業(yè)務數(shù)據(jù)表:t_d_。 . 基本編碼表:t_b_。 . 輔助編碼表:t_a_。 . 系統(tǒng)信息表:t_s_。 . 累計數(shù)據(jù)表:t_t_。 . 結(jié)算數(shù)據(jù)表:t_c_。 . 決策數(shù)據(jù)表:t_w_。 5.2 視圖 v_。視圖類型參見表的分類。 5.3 存儲過程 p_ 2.7.2函數(shù) f_ 5.5 觸發(fā)器 tr_ (after) ti_ (instead) 5.6 自定義數(shù)據(jù)類型 ud_ 5.7 Default df_ 5.8 Rule ru_ 5.9 主鍵 pk_ 5.10 外鍵 fk_第三章 JavaScript命名規(guī)范3.1示例var ClassName = function()/類名 var _FieldName = Test Field; /私有變量 this.PropertyName = Test Property Name; /屬性 var functionName = function()/私有方法 return ; this.PublicFunctionName = function(pTestName) /公有方法pTestName:參數(shù) var condition = condition;/局部變量 if(condition)/判斷 return functionName(); else var name
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB23-T2849-2021-公共視頻監(jiān)控系統(tǒng)監(jiān)控桿體施工規(guī)范-黑龍江省
- 服裝瑕疵檢查方案(3篇)
- 商貿(mào)公司啟動方案(3篇)
- 舞蹈培訓招生方案(3篇)
- 學校學生定位管理制度
- 公司理賠指標管理制度
- 工程檢測中心管理制度
- 跨境運輸督查方案(3篇)
- 總經(jīng)理績效方案(3篇)
- DB62T 4329-2021 油菜品種 隴油15號
- solidworks考試試題及答案
- 高空作業(yè)搬運無人機行業(yè)深度調(diào)研及發(fā)展項目商業(yè)計劃書
- 中國廣電山東網(wǎng)絡有限公司市縣公司招聘筆試題庫2025
- 2024年浙江省遂昌縣事業(yè)單位公開招聘教師崗考試題帶答案分析
- 2025年吉林省時事政治考試試卷帶解析及答案(必背)
- 2024年江蘇省武進市事業(yè)單位公開招聘醫(yī)療衛(wèi)生崗考前沖刺模擬帶答案
- 2025年初中語文名著閱讀《林海雪原》知識點總結(jié)及練習
- 2025年濟南鐵路局招聘筆試參考題庫含答案解析
- 特種設備鍋爐日管控、周排查、月調(diào)度主要項目及內(nèi)容表
- GB/T 29602-2013固體飲料
- 龐中華行書字帖(共36頁)
評論
0/150
提交評論