存储常用数据库表ID的最佳方法是什么?

时间:2011-11-18 19:08:11

标签: c# .net sql-server

存储经常使用的数据库表ID的最佳方法是什么?

例如,您有一个存储记录状态的表,例如活动已删除,已清除等。您想要创建新的用户记录,并且需要设置RecordStatusID,您将在哪里获取该数据?做数据库调用吗?

我已经看到开发人员创建了与表格ID匹配的枚举,但我认为这不是最佳方式。

3 个答案:

答案 0 :(得分:5)

如果您的应用程序逻辑依赖于这些值,那么更改表意味着更改代码,我更喜欢创建镜像表的枚举。

这样做会创建可读代码而不需要包含拼写错误的魔术字符串(尽管在枚举定义中用幻数替换它们)。并且代码是高效的,没有不必要的查询。

答案 1 :(得分:1)

这取决于许多因素和这些因素之间的权衡。例如,如果您有一个10行的表永远不会更改,那么您也可以定义一个emum,或者在启动应用程序并处理缓存时读取一次。但是有很多情况下数据可能会发生变化(即使不经常发生)并且缓存一次可能是一个可怕的策略。如果没有上下文信息,很难回答这样的问题,并且对于这样的问题没有一个通用的解决方案。

您能否提供一些有关您正在处理的数据的更具体信息?这很可能会带来更好的答案,不会无意中回过头来咬你。

答案 2 :(得分:1)

您可以在数据库中创建一个包含默认值的表,并在应用程序启动时读取它们并将它们存储在Dictionary对象中。然后,从.NET代码中,您只需按名称访问值。这样,如果需要更改值,可以在数据库中更改它们,而无需更新.NET代码。