数据库设计注意
http://blog.csdn.net/chenhuoren/article/details/4941131
搞數(shù)據(jù)庫,從畢業(yè)出來工作到現(xiàn)在也有好幾年了,總的來說,自己對數(shù)據(jù)庫的架構(gòu)設(shè)計(jì)算不上很精通,但還是把自己在設(shè)計(jì)中的經(jīng)驗(yàn)說說吧,希望對大家今后的設(shè)計(jì)有幫助。
我個(gè)人認(rèn)為,在數(shù)據(jù)庫的架構(gòu)中,需要注意以下的幾個(gè)問題。
一:數(shù)據(jù)庫名稱命名要簡潔,并體現(xiàn)其應(yīng)用或功能。如庫名QCOA,QC為公司簡稱,OA為OA系統(tǒng)中的主數(shù)據(jù)庫;為了防止被分析破解,表名建議采用子系統(tǒng)簡寫+功能單詞首字母,如審批管理子系統(tǒng)中:OAMD,該表的字段名為MD001,MD002......MD022并預(yù)留五到十字段供擴(kuò)展,對常用表還應(yīng)定義十個(gè)以上的自定義字段,供客戶自定制,自定義字段統(tǒng)一命名UDF01...UD99。表和字段都應(yīng)該在數(shù)據(jù)字典作標(biāo)準(zhǔn),實(shí)際開發(fā)時(shí),用向?qū)臄?shù)據(jù)字典生成具體應(yīng)用數(shù)據(jù)綁定窗口和控件,不過,這樣設(shè)計(jì)的數(shù)據(jù)庫,在交付用戶使用的時(shí)侯需要同時(shí)交付數(shù)據(jù)庫說明文檔,方便客戶的數(shù)據(jù)庫管理。
二:嵌套關(guān)系的數(shù)據(jù)表,一定要在數(shù)據(jù)字典中注明,并備注好關(guān)鍵字段。注意這里嵌套并不一定是主從表。如ERP系統(tǒng)中的工單表,一個(gè)成品對應(yīng)一張工單,該成品由N個(gè)半成品制成,又是N張工單,N個(gè)半成品可能又可細(xì)分若干層的半成品。一般就由單頭單身表二個(gè)表表示這樣的數(shù)據(jù),也可用一張表。
三:數(shù)據(jù)字典的設(shè)計(jì),表和視圖都必須記錄在字典中;其對應(yīng)的觸發(fā)器和存儲過程也必須備注中對應(yīng)的表中;表、視圖必須按模塊分類管理。
四:嚴(yán)格控制存儲過程的使用,這是血淚教訓(xùn)呀,我們公司的HR有600多個(gè)存儲過程,三四個(gè)人二三批維護(hù)修正了十個(gè)月都沒完全搞定。這就是開發(fā)時(shí)的隨意和圖修改方便造成的惡果,那個(gè)別人開發(fā)的HR在我看來是垃圾,我都不碰那個(gè)東西。建議,除非大數(shù)據(jù)量的處理,則不用存儲過程!業(yè)務(wù)邏輯封裝到程序業(yè)務(wù)類中,或?qū)QL語句放在配置文件或數(shù)據(jù)庫中,動態(tài)裝入執(zhí)行。
五:表單設(shè)置,即實(shí)際應(yīng)用時(shí)某些有單號(流水號)的表,如訂單表,其單號由單據(jù)性質(zhì)和流水號組成。建議:建一個(gè)單據(jù)設(shè)置表,統(tǒng)一保存這些表的表單設(shè)置和最大單號,也方便用戶進(jìn)行單號的設(shè)置,以及單號的生成(可以據(jù)設(shè)置表中保存的設(shè)置和最大單號值,用存儲過程無沖突生成最大單號)。我的數(shù)據(jù)庫表一般都這樣設(shè)計(jì)的,但現(xiàn)在看網(wǎng)上說,好像對這種方法不認(rèn)可,主要在于這樣設(shè)計(jì)的數(shù)據(jù)庫關(guān)系繁多,沒有使用存儲過程來得方便。這里就看自己的需要吧,我的建議還是用我的辦法,因?yàn)檫@樣的話,程序的改動不會帶來數(shù)據(jù)庫大的變動。
六:在數(shù)據(jù)庫設(shè)計(jì)中,并不是關(guān)系越多越好,而應(yīng)該是在適度的范圍內(nèi),這需要經(jīng)驗(yàn)的積累,再這里一兩句也說不清楚。模塊與模塊之間的數(shù)據(jù)交接,應(yīng)該最多只有一個(gè)關(guān)系的存在。
七:不要輕易的允許某些字段為空,所有允許為空的字段必須是基于用戶需求,而不是出于設(shè)計(jì)上方便的考慮。這樣帶來的好處是讓詳細(xì)設(shè)計(jì)中的某些錯(cuò)誤和疏漏(如在設(shè)計(jì)中沒有考慮對非空字段的內(nèi)容檢查)在編碼和單元測試階段就被發(fā)現(xiàn),從而避免了進(jìn)一步擴(kuò)散,有助于提高軟件的質(zhì)量。
有評論曰:嚴(yán)重不同意你的第四條??磥砟銢]在大型公司做過數(shù)據(jù)庫
轉(zhuǎn)載于:https://www.cnblogs.com/iLoveMyD/articles/2392755.html
總結(jié)
- 上一篇: 如何将Visio图形转换成EPS格式【m
- 下一篇: 突袭HTML5之SVG 2D入门1 -