设计这个的最佳实践:C# 中的枚举或单独的数据库 table

Best pratice to design this: enum in c# or separate database table

我正在 table 中创建记录,其中一列称为 TYPE。我以编程方式循环遍历 c# 中的枚举并创建此行。枚举包含事物的类型,例如

重要的是,这种类型绑定到逻辑。我的一个问题:

我应该将这些类型放在上面描述的枚举中,还是将它们放在单独的 table 中以获得规范化形式更好。

你更喜欢什么?

取决于两件事:

  • 值是不是table?1
  • 您需要附加其他信息吗?2

如果上述任何问题的答案是 "yes",那么使用专用查找 table 可能是个好主意。否则,在整个系统中广为人知且有据可查的常量枚举值3 是可以的。

重点是:不要像有时建议的那样盲目地使用查找 tables。它们当然有其用武之地,但也有一些情况 不应 使用。


1 可以更改或删除现有值,也可以添加新值。

2 例如人类可读(并可能本地化)的名称或描述,或者从数据库内容驱动逻辑的某种方式,而不是硬编码。

3 通常是简单的整数。如果您发现自己需要使用字符串,那可能意味着您应该回答 "yes" 问题 (2)。