假设我的数据库表包含UserType
,SalesType
等
我是否应该拥有包含UserTypeID
,userTypeName
的数据库表,还是应该创建一个C#枚举?
答案 0 :(得分:12)
两者都有什么问题?如果值是用户定义的或更改的,那么enum
绝对不合适。
如果值严格不变(例如性别),则可以将它们设置为enums
以便于在应用程序中引用,也可以将数据库作为单独的表来强制使用外键并作为参考。
答案 1 :(得分:7)
这取决于。我列出了以下每种方法的一些优缺点。一般来说,如果应用程序需要使用值来做出决策,我更喜欢枚举。正如Mehdrad所提到的,您可以使用这两种方法,但需要额外的努力才能使列表保持同步。
查找表:
枚举:
答案 2 :(得分:0)
如果列表足够稳定以使用枚举,那么我将在代码中使用枚举加上数据库中的表(使其成为数据一致性的外键)。
答案 3 :(得分:0)
在我的项目中,我使用我的应用程序dbscript从数据库生成C#consts,因此代码总是匹配db值。
当然,如果您的代码根据Type字段的值执行特定的操作,您只需要拥有C#枚举。