2009-07-31 104 views
1

可能重复:
Should I store Enum ID/values in the db or a C# enumeration?
Persisting Enums in database tables存储枚举常量数据库

快速和简单的问题这可能将成为讨论的饲料:

比方说,我的应用程序有一个枚举2-3个值,基本上永远不会改变。

您是否认为应该在数据库中将它们表示在自己的表中,然后通过外键关系从其他表中引用?还是应该将它们作为包含枚举值的简单整数字段存储在适当的表中?

请解释你的答案,也是关于对第三范式设计的坚持主张。

+0

Exact dupe:http://stackoverflow.com/questions/791030/should-i-store-enum-id-values-in-the-db-or-a-c-enumeration – 2009-07-31 09:37:09

回答

1

我所做的是将enum整数值存储在适当的表列中,但在数据库中还有一个表格,表示枚举(匹配与枚举值匹配的id)。是的,这意味着你需要保持enum和enum表都是最新的,但就像你说他们很少会改变,所以这不是什么大不了的事情。好处是,您可以在代码中使用枚举的实名,然后在查询数据库时也可以获取该枚举值的名称。

1

简单的整数字段(没有额外的表格)可以完成这项工作。它使一切简单。

1

将它们存储为简单的整数字段,但也有一个带整数和说明的枚举表。这可以根据需要加入或引用。

0

如果这个问题只发生一次,你应该使用整数字段(吻策略),但是如果你有很多枚举值,你可以有一个树结构的表来存储它们。

0

我会将它们作为简单的整数字段存储在适当的表中包含枚举的值。你可以参考,有一个列出每个枚举值的查找表及其相应的描述。我的理由是,你不想引入额外的不必要的连接,如果你没有在表中存储枚举值,你必须做。