數據庫的另一種設計方法

最近參與了一個項目的開發,在開發的過程中發現數據庫的設計有點意思,順便拿來給大家分享一下。

 

對於一個項目來說,數據庫無疑是很重要,如果數據庫設計不好,項目就很難開發的優秀,所以一個數據庫的設計就顯得尤其重要。

在我這個項目中,有一個訂單表(orderform),一個商品信息表(googsinfo),一個系統參數表(Syspram)暫且拿這幾張表做例子.在表orderformgoogsinfo中,所有的字段一律全部都爲WG01, WG02, WG03, WG04…..WG30這樣的30個字段,這些字段全都是無意義的,如圖:

 

 

 

然後在系統參數表(Sysparam)裏就標明這些表的意義,包括表裏字段的意義,如圖

 

 

這裏每個表裏的所有字段都被清楚的表述出它的意義,然後我們在操作SQL語句的時候就只操作系統參數表。比如一條select語句:

原句:SELECT WG01,WG02 FROM FreightInfo

改變後的:SELECT (SELECT FIELDNAME FROM SYSParma WHERE SHOWNAME=’配送編號’),

(SELECT FIELDNAME FROM SYSParma WHERE SHOWNAME=’聯繫人電話’) FROM FreightInfo.

當然,大家現在看起來好像改變後的比原句複雜多了,但是如果我們寫一個公共類來解析系統參數表裏的字段,那我們在寫類似SELECT WG01,WG02 FROM FreightInfo

這樣的查詢語句時,就完全沒有必要硬編碼在代碼中,只要通過改變你傳入的參數就可以獲取到不通過的字段,如果你的公共類做得更強大的話,那SQL語句的類型(比如:SELECT,UPDAE,DELETE,INSERT)等你都可以通過傳入參數來得到不同的SQL語句,這就有點像HRIBERNATE,不過不同的是HREBERNATE把配置寫到了XML文件裏,而這裏是把配置寫到了數據庫裏,操作起來更方便。在以後我們就根本不用關心表的結構問題,哪怕它換成了其他的系統,我也只要改動一下系統參數表裏的數據就可以了,完全不用擔心字段的問題,因爲所有的字段都是無意義,這樣使用的重複性就可以大大提高。

 

這就是我的見解,有什麼不足的地方,還請多多請教!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章