1. 數(shù)據(jù)庫(kù)設(shè)計(jì)最起碼要占用這個(gè)項(xiàng)目開(kāi)發(fā)的40%以上的時(shí)間。
2. 數(shù)據(jù)庫(kù)設(shè)計(jì)不僅僅停留在頁(yè)面demo的表面 頁(yè)面內(nèi)容所需字段,在數(shù)據(jù)庫(kù)設(shè)計(jì)中只是一部分,還有系統(tǒng)運(yùn)轉(zhuǎn)、模塊交互、中轉(zhuǎn)數(shù)據(jù)、表之間的聯(lián)系等等所需要的字段,因此數(shù)據(jù)庫(kù)設(shè)計(jì)絕對(duì)不是簡(jiǎn)單的基本數(shù)據(jù)存儲(chǔ),還有邏輯數(shù)據(jù)存儲(chǔ)。
3. 數(shù)據(jù)庫(kù)設(shè)計(jì)完成后,項(xiàng)目80%的設(shè)計(jì)開(kāi)發(fā)都要存在你的腦海中 每個(gè)字段的設(shè)計(jì)都要有他存在的意義,要清楚的知道程序中如何去運(yùn)用這些字段,多張表的聯(lián)系在程序中是如何體現(xiàn)的。
4. 數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)就要考慮效率和優(yōu)化問(wèn)題 數(shù)據(jù)量大的表示粗粒度的,會(huì)冗余一些必要字段,達(dá)到用最少的表,最弱的表關(guān)系去存儲(chǔ)海量的數(shù)據(jù)。大數(shù)據(jù)的表要建立索引,方便查詢。對(duì)于含有計(jì)算、數(shù)據(jù)交互、統(tǒng)計(jì)這類需求時(shí),還有考慮是否有必要采用存儲(chǔ)過(guò)程。
5. 添加必要的冗余字段 像創(chuàng)建時(shí)間、修改時(shí)間、操作用戶IP、備注這些字段,在每張表中最好都有,一些冗余的字段便于日后維護(hù)、分析、拓展而添加。
6. 設(shè)計(jì)合理的表關(guān)聯(lián) 若兩張表之間的關(guān)系復(fù)雜,建議采用第三張映射表來(lái)關(guān)聯(lián)維護(hù)兩張表之間的關(guān)系,以降低表之間的直接耦合度。
7. 設(shè)計(jì)表時(shí)不加主外鍵等約束關(guān)聯(lián),系統(tǒng)編碼階段完成后再添加約束性關(guān)聯(lián)。
8. 選擇合適的主鍵生成策略 數(shù)據(jù)庫(kù)的設(shè)計(jì)難度其實(shí)比單純的技術(shù)實(shí)現(xiàn)難很多,他充分體現(xiàn)了一個(gè)人的全局設(shè)計(jì)能力和掌控能力,最后說(shuō)一句,數(shù)據(jù)庫(kù)設(shè)計(jì),很重要,很復(fù)雜。