Table

為相似數據製作 3 個單獨的表,或 1 個組合表?

  • August 22, 2020

在設計一個數據庫的結構時,如果我們有多個數據相似的表,是否應該將這些表組合在一起,並添加一個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 在這裡深入討論了這個主題。

引用自:https://dba.stackexchange.com/questions/96555