想象一下,你有一个表 - 让图谋的例子,这是Orders
- 其中有一个名为type
场,这可能是只有几个固定值之一(可以说0
或1
,为Quotation
和Order
)。应该将定义的数字存储在数据库中的表中吗?
如果所有的type
可能值通过在数据库中的另一个表来表示(只typeID
和typeName
列?),并Orders
作出引用新表?
或者将这些数字保持原样并将它们记录在数据库之外是正常的吗?
如果这是一个“取决于”的情况:两种选择的重要含义是什么?
我已经在最近的大学分配中使用了第一个选项,但没有真正考虑原因 - 现在回顾设计,我想知道这是否重要。
我从来没有查询过参考表作为我的应用程序的一部分 - 因为我没有“需要” - 这是否表明参考表是不需要的,或者这是我的应用程序中的一个缺陷,因为它应该检查参考表(做什么的?)?
+1数据库是存储和引用数据的地方。一个枚举也是一个很好的解决方案,但是当两个+控制器(在MVC中)或两个+大块的中间件或任何其他数字的定义不同时,存储数据(包括这种类型的引用数据)最终会招致灾难。 – 2010-12-21 13:48:25