關於Data Schema的簡單觀念

關於Data Schema的簡單觀念

[前言]

每次換一家公司都會發現到同樣的問題,那就是很多PG設計的table裡面的欄位都很讓人詬病...
(很多人就是只圖一時的方便, 根本沒有顧慮到很多應該注意的問題)

[案例]

image

沒有primary key, 所有文字欄位都是nvarchar(4000)
1. 只要是比較有意義的table都應該設定primary key否則將來的外部索引可能會有多對多的不合理情況
2. 至於常用來做查詢條件的欄位都應該避免使用varchar, nvarchar
   (應該盡量使用cahr, nchar且長度盡量越小越好)
3. 有數字運算關係的部分就不應該使用文字型態的欄位
   (否則資料庫或程式算過程中都有不斷地轉型消耗無意義的效能) 
4. 日期的部分也一樣盡量使用時間型態的欄位
    (通常都會使用date time)

[結語]

觀念也許都有就怕不去實踐, 想要參考別人設計正統的資料庫,可以參考北風資料庫或是AdventureWorks都是不錯的選擇...
Birdie在這邊也提供自己曾經設計過的一個table給大家參考一下...

image