想象一下,你有一個表 - 讓圖謀的例子,這是Orders
- 其中有一個名爲type
場,這可能是隻有幾個固定值之一(可以說0
或1
,爲Quotation
和Order
)。應該將定義的數字存儲在數據庫中的表中嗎?
如果所有的type
可能值通過在數據庫中的另一個表來表示(只typeID
和typeName
列?),並Orders
作出引用新表?
或者將這些數字保持原樣並將它們記錄在數據庫之外是正常的嗎?
如果這是一個「取決於」的情況:兩種選擇的重要含義是什麼?
我已經在最近的大學分配中使用了第一個選項,但沒有真正考慮原因 - 現在回顧設計,我想知道這是否重要。
我從來沒有查詢過參考表作爲我的應用程序的一部分 - 因爲我沒有「需要」 - 這是否表明參考表是不需要的,或者這是我的應用程序中的一個缺陷,因爲它應該檢查參考表(做什麼的?)?
+1數據庫是存儲和引用數據的地方。一個枚舉也是一個很好的解決方案,但是當兩個+控制器(在MVC中)或兩個+大塊的中間件或任何其他數字的定義不同時,存儲數據(包括這種類型的引用數據)最終會招致災難。 – 2010-12-21 13:48:25