这可能是一个基本的数据库问题,但我更习惯于使用对象而不是表。假设我有一个带有属性'genre'的对象'Movie'。应使用枚举类型限制类型(例如,唯一有效的类型是恐怖,动作,喜剧,戏剧)。该如何转换为数据库模式?
我倾向于第一种选择,但是存在陷阱/等等。我不在考虑?
答案 0 :(得分:2)
我倾向于使用查找表,这是您的第二个选项。我更喜欢这个的原因是我可以简单地通过在Genres表中添加一行来添加新类型。无需修改代码或修改模式中的枚举定义。
另请参阅我对How to handle enumerations without enum fields in a database?
的回答答案 1 :(得分:1)
这是一个有用的启发式方法:您是否将客户端代码中的所有值都视为相同?
灰色区域是你做两件事的。例如。您需要以特殊方式处理值,但仍有一些额外的字段(与每个值相关联)可以一般地处理(例如,只是将其显示给用户)。或者您需要以特殊方式处理某些值。在这些情况下,我会倾向于查找表。
1 或删除或修改旧值。