程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 數據庫設計必須考慮的細節

數據庫設計必須考慮的細節

編輯:Oracle數據庫基礎

1、為了避免數據轉換時可能遇到的主鍵意義沖突,表格的主鍵應該選擇無意義的INT類型整數。推薦叫做id。而且使用INT型字段作主鍵和外鍵時,表間連接的效率也很高。


2、每個有意義的表格應該添加comment備注字段,以存儲無法完全記錄的其他數據。


3、每個實體應該記錄開始啟用時間和停用時間,僅在這段時間內是有效的。(by gashero)啟用時間可以在生成表格時自動生成,結束時間可以預先設為世界末日。這樣可以通過時間是否等於世界末日,或者當前時間是否小於結束時間來判斷當前是否可用。


4、實體間聯系應該盡可能的考慮到發生多對多聯系的可能,(by gashero)很多業務制定者也無法確定是否會發生這種聯系。


5、避免使用varchar數據類型,這種不定長數據類型會增加處理時間,降低性能,一般僅用於注釋字段等等可能非常大,但是長度卻不確定的字段。


6、字段名的選取可以參考面向對象的思想,字段名只要描述表格的某一屬性即可,無需在字段名之前一定要加上表格名,這樣只會徒增煩惱。


7、字段設計常常會遇到集合元素的選取,比如實體的幾種狀態。(by gashero)這種設計常常很煩躁,如果使用有意義的字符串作值,則引用完整性維護有相當的難度,而且性能很低。如果使用外鍵序號來代表狀態,而引用另外一個標識狀態的表格,則表格連接也有一定的性能損失。但是一般來說還是推薦後一種方式。引用完整性的作用不僅僅在於效率,而且在於維護能力。


8、存儲過程絕對是個好東西,不過很可惜,有些開源數據庫不支持。可以把存儲過程想象為一個可調用的函數,可以返回記錄集。所以這個函數可以存在於數據庫中也可以存在於程序中,如何選取是個愛好問題。數據庫內部實現的存儲過程效率很高,但是對維護性有一定的問題。程序中實現的存儲過程幾乎沒什麼效率可言,僅僅是方便而已。


9、不要太盲目於整形和浮點型的效率。如果你有興趣,可以自己測試一下,在現代的電腦中,浮點數的計算速度比整數類型的還高。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved