監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 簽約案例 | 購(gòu)買價(jià)格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉

大型erp軟件教程數(shù)據(jù)庫(kù)系統(tǒng)常見(jiàn)的幾種設(shè)計(jì)

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

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

1. 自增長(zhǎng) primary key

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

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

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

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

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

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

3. 雙主鍵

雙主鍵是指數(shù)據(jù)庫(kù)表有兩個(gè)字段,這兩個(gè)字段獨(dú)立成為主鍵,但又同時(shí)存在。 數(shù)據(jù)庫(kù)系統(tǒng)的雙主鍵最早用在用戶管理模塊。最早的來(lái)源可能是參照操作系統(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)來(lái)一個(gè)普通員工 peter ,兩個(gè)peter 用同樣的 login id, 如果只用 login id 作操作系統(tǒng)的用戶管理主鍵,則存在漏洞:普通員工 peter 可以訪問(wèn)原來(lái)只有總經(jīng)理才能看的文件。操作系統(tǒng)自己自動(dòng)生成的隨機(jī) ID 一般情況下面用戶是看不到的。

雙主鍵現(xiàn)在已經(jīng)廣泛用在各種數(shù)據(jù)庫(kù)系統(tǒng)中,不限于用戶管理系統(tǒng)。

4. 以固定的數(shù)據(jù)庫(kù)、表應(yīng)付變化的客戶需求

這主要基于以下幾個(gè)因素的考慮:

4.1 大型 EPR 系統(tǒng)的正常使用、維護(hù)需要軟件廠商及其眾多的合作伙伴共同給客戶提供技術(shù)服務(wù),包括大量的二次開發(fā)。

如果用戶在軟件正常使用過(guò)程中需要增加新的表或者數(shù)據(jù)庫(kù),將給軟件廠商及其眾多的合作伙伴帶來(lái)難題。

4.2 軟件升級(jí)的需要。

沒(méi)有一個(gè)軟件能夠讓客戶使用幾十上百年不用升級(jí)的。軟件升級(jí)往往涉及數(shù)據(jù)庫(kù)表結(jié)構(gòu)的改變。軟件廠商會(huì)做額外的程序?qū)⒃缙诎姹拒浖臄?shù)據(jù)庫(kù)數(shù)據(jù)升級(jí)到新的版本,但是對(duì)于用戶使用過(guò)程中生成的表進(jìn)行處理就比較為難。

發(fā)布:2007-04-22 12:04    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:

泛普ERP軟件教程其他應(yīng)用

協(xié)同辦公 行政管理 人力資源 績(jī)效考核 薪酬管理 營(yíng)銷管理 銷售管理 采購(gòu)管理 庫(kù)存管理 供應(yīng)鏈設(shè)置 生產(chǎn)管理 質(zhì)檢管理 供應(yīng)商管理 財(cái)務(wù)管理 門店配送 門店管理 系統(tǒng)管理 手機(jī)APP 智能開發(fā)平臺(tái) ERP軟件教程 ERP系統(tǒng)操作 ERP系統(tǒng)教程