2011-08-09 31 views
0

您在项目中使用ENUM/SET字段类型,还是使用VARCHAR/INT字段并在代码中定义可用值?最佳做法是什么?使用或不使用ENUM/SET类型?

避免使用ENUM/SET似乎更容易维护,因为我们必须仅在代码中更改值(不是数据库和代码)。

谢谢。

回答

3

它不可能回答这个问题,不知道你的项目是什么,你的数据是什么样的,等

一般而言,其限制使用ENUM,并且还限制直接在代码中定义值。如果您需要对其中任一项进行更改,如果需要“ALTER”或编辑您的代码。如果您创建单独的表来存储可接受的值,并使用外键链接到该表,则可以轻松添加和编辑属性,而无需更改任何定义或代码。

编辑:它也使属性可以访问您的代码。

+1

在必须修改一个数百万行的表来添加一个新的ENUM值之后,我才会使用它们,当我知道值不会像星期几那样变化时。在巨大的桌子上限制但不那么痛苦。 –

1

我用枚举,但是对于搜索/性能,最好使用INT