Table
為相似數據製作 3 個單獨的表,或 1 個組合表?
在設計一個數據庫的結構時,如果我們有多個數據相似的表,是否應該將這些表組合在一起,並添加一個
ENUM
欄位來表示表的類型;還是應該創建 3 個單獨的表?例如
- 增值稅(銷售稅)稅率
- 全國最低工資率
- 貨幣匯率
表的結構將是:
|============= VAT rates =============| | id | rate | from | to | |----|------|------------|------------| | 1 | 17.5 | 1991-04-01 | 2008-11-30 | | 2 | 15.0 | 2008-12-01 | 2009-12-31 | | 3 | 17.5 | 2010-01-01 | 2011-01-03 | | 4 | 20.0 | 2011-01-04 | NULL | |=====================================|
所有 3 個表都經常被查詢引用。
數據的完整密鑰比您指出的更複雜。銷售稅率可能因司法管轄區而異,商品可分為奢侈品或免稅商品。工資率可能因行業和公共假期/正常工作日而異。匯率必須與來源貨幣和目的地貨幣有關。
雖然您的值可能都是小數,但它們具有不同的單位,這使它們成為不同的東西。稅收是“百分比”,工資是“每小時美元”,外匯匯率是無量綱比率。
當然,您的數據范圍必須排除這些考慮因素。只有你能說。
Joe Celko 在這裡深入討論了這個主題。