作為信息的存儲系統,在Oracle數據庫中,表是最基本的對象之一。中培偉業《ORACLE數據庫管理與性能調優》培訓專家楊老師指出,萬丈高樓從平地起,這個基礎對象對于數據庫來說,非常重要。因為其設計是否合理,直接跟數據庫的性能相關。從Oracle數據庫菜鳥到數據庫專家這個過程中,在表設計與管理上,或多或少,會犯一些錯誤。筆者今天就談談自己在這方面的經驗與教訓,或許能夠給大家一些警示作用。
經驗一:在設計大型數據庫時,把允許NULL的列放在表的后面。
在數據庫表設計過程中,有些字段要求必須為非空,如表的關鍵字,單據編號字段等等。在數據庫表創建的時候,往往需要把這些字段設置為非空。如此的話,就可以強制用戶輸入數據,以增強數據的一致性。
同時,在一張表中,也會有不少的字段,如員工信息表中,員工愛好、注釋等字段,就可能允許為空。利用數據庫專業術語來說,這些沒有內容的字段就是“NULL”字段。
在數據庫表設計的時候,對于這種類型的空字段要特別的留意。一方面,這個NULL字段,不是說其里面存儲的是空格。若利用“’’”這個符號去查詢空字段的記錄的話,往往查不到我們想要的結果。因為在數據庫存儲的時候,若字段為NULL,則這個值根本沒有存儲。另一方面,正因為上面這種特性,所以,在表設計的時候,最好把允許NULL的字段放在表的末尾,當數據庫比較大或者空字段比較多的話,則可以大大的減少數據庫的存儲空間。
另外,在數據庫創建表的時候,是按照列建立的時間來排序的。所以,當某個列建立好之后,除非重新刪除再建立,否則無法調整列的順序。這就要求數據庫管理員在創建表之前,就要對列、以及是否為空有一個明確的定義。只有如此,才能夠合理安排列的順序。
經驗二:養成勤于寫注釋的習慣。
判斷一個人是否是數據庫專家,從一個“注釋”的小習慣中就可以 看得出來。若一個人在數據庫開發的時候,勤與寫注釋,如在建立表或者字段的時候,能夠利用comment命令對表與字段進行注釋,則可以從一定程度上判斷他是這方面的行家。相反,若其開發的數據庫,注釋沒有多少,則基本可以判斷,他是一個剛入門的菜鳥。或者說,其沒有參加過大型數據庫的設計。
這主要是因為,在數據庫開發過程中,往往不是一個人可以完成的。如在開發一個ERP數據庫的時候,可能有些人專門負責開發基礎表,而有些人負責維護視圖,等等。大家都是分工合作。同時,在前臺也有程序員需要調用后臺的數據庫表與字段。所以,中大型的數據庫與應用系統往往是大家協作的結果。
為此,為了提高表與字段的可讀性,一個數據庫管理人員開發的表格,大家都可以看的懂,就需要給表與字段設置比較詳盡的注釋。在Oracle數據庫中,為了給其他伙伴提供有意義的幫助信息,就可以利用Comment命令來描述表、字段的作用以及一些引用的注意事項。這個小小的命令,可以大大提高表與字段的可讀性,提高數據庫與程序開發團隊的協作性。