【发布时间】:2010-10-21 22:04:21
【问题描述】:
假设我的数据库表有 UserType、SalesType 等列。
我应该有带有UserTypeID、userTypeName 的数据库表,还是应该只创建一个 C# 枚举?
【问题讨论】:
标签: c# database enums constants
假设我的数据库表有 UserType、SalesType 等列。
我应该有带有UserTypeID、userTypeName 的数据库表,还是应该只创建一个 C# 枚举?
【问题讨论】:
标签: c# database enums constants
两者都有什么问题?如果值是用户定义或更改的,那么enum 肯定不合适。
如果值是严格不变的(例如性别),您可以将它们设置为 enums,以便在应用程序和数据库中作为单独的表进行引用,以强制执行外键并作为参考。
【讨论】:
如果列表足够稳定可以使用枚举,那么我会在您的代码中使用枚举加上数据库中的表(使其成为数据一致性的外键)。
【讨论】:
这取决于。我在下面列出了每种方法的一些优点和缺点。一般来说,如果应用程序需要使用一个值来做出决策,我更喜欢枚举。正如 Mehdrad 所提到的,您可以同时使用这两种方法,但需要付出额外的努力才能使列表保持同步。
查找表:
枚举:
【讨论】:
在我的项目中,我使用我的应用程序 dbscript 从数据库生成 C# 常量,因此代码始终与 db 值匹配。
当然,如果您的代码根据 Type 字段的值执行特定操作,您只需要使用 C# 枚举。
【讨论】: