1. 慎用外鍵 RDBMS 支持複雜關係的能力很強,不管用戶怎麼在邏輯上設定外鍵,它基本上都能從物理上幫用戶實現。可是外鍵把許多獨立的實體牽連在一塊兒,不只使 RDBMS 維持數據一致性負擔沉重,也使數據庫應用複雜化,加劇了程序開發負擔。這樣的數據庫很難理解,很難實現信息隱蔽性設計,每每把簡單問題複雜化。 2. 適當冗餘 減小數據庫冗餘的設計思路產生於70年代,它是促使 DBMS 進步的重要動力之一。然而,猶如爲了節省2個字節的存儲空間而釀成了現在全球爲之頭痛的2000年問題同樣,它是計算機硬件主導時代的產物。以今天國內計算機市場價格爲例,6G服務器硬盤的價格不過 2000元,而上海物價局 1996 年頒發的一我的月軟件開發的指導價約8000元,即一我的月的軟件價格就能夠購買20G左右的硬盤。即便有5萬行數據的庫表,每一個記錄壓縮40字符的冗餘,單純計算合計也不足2M,即節省0.6元錢的磁盤空間。 今天的世界已進入軟件主導的計算機時代。所以,最容易理解、應用開發工做量最少、維護最簡單的數據庫結構纔是最好的。只要數據完整性、一致性不受威脅,有些冗餘,不足爲慮。換言之,最節省軟件成本 (而不是硬件成本) 的是最好的。 3. 信息隱蔽 這是軟件工程最重要的基本原則之一。簡言之即信息的做用域越小越好,數據庫的透明度越大越好,由於應用程序須要知道得越多就越複雜。使數據庫黑盒化 (透明度高) 的方法不少,除了設計上的局部化處理外,還能夠利用 DBMS 的觸發器、存儲過程、函數等 ,把數據庫中沒法簡化的複雜表關係封裝到黑盒子裏,隱藏起來,特別是放到服務器端,其優越性更是多方面的。