1

我有一个应用程序,它在关系数据库中有数据行,该表需要一个状态,该状态始终是

未提交、等待批准、已批准、已拒绝

现在,由于这些永远不会改变,我试图确定实现它们的最佳方法,我可以考虑一个带有值的状态枚举和一个分配的 int,其中 int 被放置到表行的状态列中。

或者链接到表的状态表,用户选择其中一个作为当前状态。

我无法决定哪个是更好的选择,因为我目前有一个枚举,这些值用于审批页面以填充下拉列表等并设置 sql(因为它当前用于 bool Approved 并提交审批,但这很脏由于各种原因和需求发生变化)。

想知道您对此有何想法,以及我是否应该选择其中一个。

如果它有任何区别,我正在使用实体框架。

4

3 回答 3

1

如果 Enum 永远不会改变,我会选择它,因为它的性能会更高(没有加入来获取状态)。此外,这是更简单的解决方案:)。

于 2010-08-20T15:30:35.837 回答
1

现在因为这些永远不会改变......

你可以指望这个假设是错误的,而且比你想象的要早。

我会使用查找表。在查找表中添加或更改值比更改枚举的定义要容易得多。

您可以在查找表中使用自然主键,因此您无需进行连接即可获取值。是的,字符串比整数 id 占用更多空间,但如果您的目标是避免连接,这将实现该目标。

于 2010-08-20T15:34:28.157 回答
1

我使用 Enums 并使用该[Description("asdf")]属性来绑定有意义的句子或 Enums 中不允许的其他内容。然后将枚举文本本身用作下拉列表中的值,并将描述用作可见文本。

于 2010-08-20T15:46:42.557 回答