|
1 目的 規(guī)范數(shù)據(jù)庫(kù)設(shè)計(jì)。 2 概述 從數(shù)據(jù)庫(kù)的設(shè)計(jì)原則 設(shè)計(jì)文檔幾方面論述數(shù)據(jù)庫(kù)設(shè)計(jì)的規(guī)范思想及命名規(guī)則。 3 數(shù)據(jù)庫(kù)設(shè)計(jì)原則 3.1 結(jié)構(gòu)原則 3.1.1 與程序流程有關(guān)的狀態(tài)信息使用域進(jìn)行限制和定義,不允許最終用戶修改定義 3.1.2 用戶可修改的狀態(tài)列表信息,用數(shù)據(jù)表來(lái)定義,一經(jīng)創(chuàng)建后,用戶只可修改名稱,不能修改代碼,修改后的名稱與原名稱應(yīng)代表相同的意義。 3.1.3 用戶采用列表錄入的文字信息,在一個(gè)統(tǒng)一的‘系統(tǒng)信息’表中定義,用戶可任意創(chuàng)建和修改。用此種方法錄入的信息,錄入的信息與選擇列表不存在約束關(guān)系,列表只是作為文字錄入的一種輔助手段。 3.1.4 輔助編碼表應(yīng)至少有兩列—代碼和名稱。只有在名稱非常穩(wěn)定的情況下才可以不使用代碼。使用編碼表的好處是在應(yīng)用程序界面中,不同的地方出現(xiàn)同一種數(shù)據(jù)的錄入(如錄入數(shù)據(jù)或查詢過(guò)濾條件)時(shí)只需定義一次選擇列表,不會(huì)出現(xiàn)兩處沖突的現(xiàn)象,方便編程。 3.1.5 所有記錄業(yè)務(wù)數(shù)據(jù)的表中都設(shè)有‘錄入員’和‘錄入日期’列,由系統(tǒng)自動(dòng)記錄。 3.1.6 記錄業(yè)務(wù)數(shù)據(jù)的表中,根據(jù)需要設(shè)置‘過(guò)程’和‘狀態(tài)’列,‘過(guò)程’列用一位數(shù)字或字符記錄如錄入 審核 記賬等過(guò)程狀態(tài);‘狀態(tài)’列用一位數(shù)字或字符記錄如正常 作廢 刪除等狀態(tài)。所有表的‘過(guò)程’狀態(tài)的改變?nèi)掌诤筒僮魅擞梢粏为?dú)表來(lái)記錄,表中記錄狀態(tài)改變所涉及的表標(biāo)識(shí) 記錄標(biāo)識(shí) 操作人和操作日期。 3.1.7 基本編碼表中應(yīng)設(shè)置‘編碼’ ‘縮語(yǔ)’ ‘名稱’,‘編碼’作為主鍵與其它表的外鍵形成對(duì)應(yīng)關(guān)系,完成基于主-外鍵的完整性約束。 3.1.8 記錄錄入單據(jù)的表中設(shè)置‘自動(dòng)單據(jù)號(hào)’,由一字符開(kāi)始以區(qū)分單據(jù)類型,后跟一數(shù)字序列表示序號(hào)。‘自動(dòng)單據(jù)號(hào)’由系統(tǒng)自動(dòng)生成,作為主表的主鍵,不允許用戶修改,并作為連接主表和明細(xì)表的外鍵。 3.1.9 明細(xì)表中設(shè)置序號(hào)列,用于同一單據(jù)中排列各行的序號(hào)。 3.1.10 用于記錄業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)表與用于報(bào)表的數(shù)據(jù)表分別存于不同的數(shù)據(jù)庫(kù)中,分別命名為‘業(yè)務(wù)數(shù)據(jù)庫(kù)’和‘決策數(shù)據(jù)庫(kù)’。‘業(yè)務(wù)數(shù)據(jù)庫(kù)’獨(dú)立于‘決策數(shù)據(jù)庫(kù)’進(jìn)行設(shè)計(jì),‘決策數(shù)據(jù)庫(kù)’中的數(shù)據(jù)來(lái)源于‘業(yè)務(wù)數(shù)據(jù)庫(kù)’。 3.1.11 任意業(yè)務(wù)流程中應(yīng)考慮創(chuàng)建 審核 記賬 修改 刪除 沖紅 結(jié)存(月結(jié) 年結(jié))的處理及滿足的條件。 3.1.12 對(duì)于主-明細(xì)表結(jié)構(gòu),設(shè)計(jì)對(duì)應(yīng)的視圖將兩表連接用于查詢。 3.1.13 禁止直接用編碼或名稱列表(in)作為固定的過(guò)濾條件對(duì)數(shù)據(jù)進(jìn)行查詢。應(yīng)將包含此過(guò)濾條件的查詢做成特定的視圖;或在編碼表中加入一屬性字段用于分類。 3.1.14 對(duì)于業(yè)務(wù)數(shù)據(jù)表應(yīng)設(shè)定一個(gè)‘存檔標(biāo)記列’,對(duì)于新增行或修改行設(shè)置該標(biāo)志,以便將業(yè)務(wù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)向決策數(shù)據(jù)庫(kù)復(fù)制時(shí)用以選擇需更新的數(shù)據(jù)。當(dāng)采用數(shù)據(jù)庫(kù)復(fù)制技術(shù)時(shí),也希望設(shè)定此標(biāo)志,以備用。此標(biāo)志的設(shè)置可以由應(yīng)用程序或觸發(fā)器來(lái)執(zhí)行。 3.1.15 決策數(shù)據(jù)庫(kù)中應(yīng)復(fù)制基本編碼表和輔助編碼表,以保持決策數(shù)據(jù)庫(kù)數(shù)據(jù)的完整性。 3.1.16 同時(shí)采用多種分類方法:如果某一實(shí)體有多于一種的分類方法,或?qū)嶓w中的每個(gè)實(shí)例所屬的類的數(shù)量是不定的,這時(shí)實(shí)體表和分類表之間的關(guān)聯(lián)是多對(duì)多的,即一個(gè)實(shí)體屬于一個(gè)分類而同時(shí)也屬于其它的分類。對(duì)于具有可多選的分類標(biāo)志的表,與分類名稱列表之間存在多對(duì)多的關(guān)系,須按多對(duì)多的關(guān)系來(lái)處理。 3.1.17 業(yè)務(wù)過(guò)程的記錄:如果一個(gè)業(yè)務(wù)表(或主表+明細(xì)表)依賴另外一個(gè)業(yè)務(wù)表的數(shù)據(jù),或在流程上一個(gè)業(yè)務(wù)表根據(jù)另一個(gè)業(yè)務(wù)表生成,則該業(yè)務(wù)表中應(yīng)有一字段記錄另一業(yè)務(wù)表對(duì)應(yīng)記錄的標(biāo)識(shí)。這樣的結(jié)構(gòu)使得在流程上的所有數(shù)據(jù)形成一個(gè)鏈。他有兩個(gè)作用:其一,可以追述某一過(guò)程進(jìn)行到哪一步;其二,對(duì)于流程的回退有用,當(dāng)流程需要回退到某一步時(shí),將該步驟生成的記錄作廢,同時(shí)作廢由此記錄生成的所有后續(xù)記錄,即可以回退到流程的任意一點(diǎn)。由于數(shù)據(jù)的依賴關(guān)系,回退時(shí)實(shí)際上是從后向前作廢記錄,直到希望回退到的位置為止。 3.1.18 分類字段的冗余:業(yè)務(wù)數(shù)據(jù)表往往關(guān)聯(lián)許多的基本信息表,這些基本信息表中可能含有一些分類字段,而業(yè)務(wù)數(shù)據(jù)表的分類統(tǒng)計(jì)可能引用這些字段。如果這些分類字段的內(nèi)容會(huì)改變,而又不希望這種改變影響業(yè)務(wù)數(shù)據(jù)的統(tǒng)計(jì)結(jié)果,則在這些業(yè)務(wù)數(shù)據(jù)表中應(yīng)包含這些分類字段,用以記錄業(yè)務(wù)發(fā)生時(shí)該字段的內(nèi)容。 3.1.19 類別和狀態(tài)的多選:多選分為必選(1..n)和可選(0..n)。如是必選,在設(shè)計(jì)時(shí)要有說(shuō)明,在程序?qū)崿F(xiàn)中應(yīng)有控制和檢查。兩個(gè)可選的類別或狀態(tài)表可以合并為一個(gè)表,再與引用此表的主表形成多對(duì)多的關(guān)系 3.1.20 財(cái)務(wù)記賬的處理:由憑證生成各種帳目(總帳 明細(xì)帳 日記帳 部門帳 往來(lái)帳 項(xiàng)目帳以及備查帳)時(shí),有兩種處理方法:一種是各賬本不生成表,需要時(shí)臨時(shí)生成,在月結(jié)時(shí)一次生成月結(jié)帳;另一方法是生成表,當(dāng)對(duì)憑證進(jìn)行修改時(shí),先做刪除處理(可用數(shù)據(jù)庫(kù)的級(jí)聯(lián)刪除功能),再補(bǔ)新憑證然后記帳,或,先做作廢處理(各賬目中與憑證相關(guān)的記錄由憑證號(hào)關(guān)聯(lián)),再補(bǔ)新憑證然后記帳。當(dāng)各賬本與憑證之間由憑證號(hào)關(guān)聯(lián)時(shí),可進(jìn)行關(guān)聯(lián)查找。 3.2 命名原則 3.2.1 表和視圖命名原則 3.2.2 列命名規(guī)則 3.2.3 過(guò)程、函數(shù)、觸發(fā)器命名原則 3.2.5 主鍵、外鍵關(guān)系、索引命名原則 |
|
|