首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 繽紛校園 英語學(xué)習(xí)
2010考研 | 自學(xué)考試 | 成人高考 | 專 升 本 | 法律碩士 | MBA/MPA | 中 科 院
四六級(jí) | 商務(wù)英語 | 公共英語 | 職稱日語 | 職稱英語 | 博思 | 口譯筆譯 | GRE GMAT | 日語 | 托福
雅思 | 專四專八 | 新概念 | 自考英語 | 零起點(diǎn)英、、、韓語 | 在職申碩英語
在職攻碩英語 | 成人英語三級(jí)
等級(jí)考試 | 水平考試 | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 報(bào)檢員 | 外銷員 | 司法考試 | 導(dǎo)游考試 | 教師資格 | 國際商務(wù)師 | 跟單員
單證員 | 物流師 | 價(jià)格鑒證師 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 人力資源管理師 | 管理咨詢師
期貨從業(yè)資格 | 社會(huì)工作者
會(huì)計(jì)職稱 | 注會(huì)CPA | 經(jīng)濟(jì)師 | 統(tǒng)計(jì)師 | 注冊稅務(wù)師 | 評(píng)估師 | 精算師 | 高會(huì) | ACCA | 審計(jì)師
法律顧問 | 會(huì)計(jì)證
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)師 | 監(jiān)理師 | 安全師 | 咨詢師 | 結(jié)構(gòu)師 | 建筑師 | 安全評(píng)價(jià)師
房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 設(shè)備監(jiān)理師 | 巖土工程師 | 質(zhì)量資格 | 房地產(chǎn)經(jīng)紀(jì)人 | 造價(jià)員
投資項(xiàng)目管理 | 土地代理人 | 環(huán)保師 | 環(huán)境影響評(píng)價(jià) | 物業(yè)管理師 | 城市規(guī)劃師 | 公路監(jiān)理師
公路造價(jià)工程師 | 招標(biāo)師
執(zhí)業(yè)護(hù)士 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 衛(wèi)生資格
您現(xiàn)在的位置: 考試吧(Exam8.com) > 軟件水平考試 > 系統(tǒng)分析師 > 正文

大型ERP等數(shù)據(jù)庫系統(tǒng)常見的幾種設(shè)計(jì)

  1. 自增長 primary key

  采用自增長 primary key主要是性能。早期的數(shù)據(jù)庫系統(tǒng),經(jīng)常采用某種編號(hào),比如身份證號(hào)碼,公司編號(hào)等等作為數(shù)據(jù)庫表的 primary key。然而,很快,大家就發(fā)現(xiàn)其中的不利之處。

  比如早期的醫(yī)院管理系統(tǒng),用身份證號(hào)碼作為病人表的 primary key。然而,第一,不是每個(gè)人都有身份證;第二,對(duì)于國外來的病人,不同國家的病人的證件號(hào)碼并不見得沒有重復(fù)。因此,用身份證號(hào)碼作為病人表的 primary key是一個(gè)非常糟糕的設(shè)計(jì)?紤]到?jīng)]有醫(yī)生或者護(hù)士會(huì)刻意去記這些號(hào)碼,使用自增長 primary key是更好的設(shè)計(jì)。

  公司編號(hào)采用某種特定的編碼方法,這也是早期的數(shù)據(jù)庫系統(tǒng)常見的做法。它的缺點(diǎn)也顯而易見:很容易出現(xiàn)像千年蟲的軟件問題,因?yàn)楫?dāng)初設(shè)計(jì)數(shù)據(jù)庫表的時(shí)候設(shè)計(jì)的位數(shù)太短,導(dǎo)致系統(tǒng)使用幾年后不能滿足要求,只有修改程序才能繼續(xù)使用。問題在于,任何人設(shè)計(jì)系統(tǒng)的時(shí)候,在預(yù)計(jì)某某編號(hào)多少位可以夠用的時(shí)候,都存在預(yù)計(jì)不準(zhǔn)的風(fēng)險(xiǎn)。而采用自增長 primary key 則不存在這種問題。同樣的道理,沒有人可以去記這些號(hào)碼。

  使用自增長 primary key另外一個(gè)原因是性能問題。略有編程常識(shí)的人都知道,數(shù)字大小比較比字符串大小比較要快得多。使用自增長 primary key可以大大地提高數(shù)據(jù)查找速度。

  2. 避免用復(fù)合主鍵 (compound primary key)

  這主要還是因?yàn)樾阅軉栴}。數(shù)據(jù)檢索是要用到大量的 primary key 值比較,只比較一個(gè)字段比比較多個(gè)字段快很多。使用單個(gè) primary key 從編程的角度也很有好處, sql 語句中 where 條件可以寫更少的代碼,這意味著出錯(cuò)的機(jī)會(huì)大大減少。

  3. 雙主鍵

  雙主鍵是指數(shù)據(jù)庫表有兩個(gè)字段,這兩個(gè)字段獨(dú)立成為主鍵,但又同時(shí)存在。 數(shù)據(jù)庫系統(tǒng)的雙主鍵最早用在用戶管理模塊。最早的可能是參照操作系統(tǒng)的用戶管理模塊。

  操作系統(tǒng)的用戶管理有兩個(gè)獨(dú)立的主鍵:操作系統(tǒng)自己自動(dòng)生成的隨機(jī) ID (Linux, windows 的 SID), login id。這兩個(gè) ID 都必須是唯一的,不同的是,刪除用戶 test 然后增加一個(gè)用戶 test, SID 不同,login id 相同。采用雙主鍵主要目的是為了防止刪除后增加同樣的 login id 造成的混亂。比如銷售經(jīng)理 hellen 本機(jī)共享文件給總經(jīng)理 peter, 一年后總經(jīng)理離開公司,進(jìn)來一個(gè)普通員工 peter ,兩個(gè)peter 用同樣的 login id, 如果只用 login id 作操作系統(tǒng)的用戶管理主鍵,則存在漏洞:普通員工 peter 可以訪問原來只有總經(jīng)理才能看的文件。操作系統(tǒng)自己自動(dòng)生成的隨機(jī) ID 一般情況下面用戶是看不到的。

轉(zhuǎn)帖于:軟件水平考試_考試吧
文章搜索
大型ERP等數(shù)據(jù)庫系統(tǒng)常見的幾種設(shè)計(jì)網(wǎng)友評(píng)論網(wǎng)友評(píng)論
版權(quán)聲明 --------------------------------------------------------------------------------------
    如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
 gaoxiaoliang