2010-12-08 40 views
0

上下文:SQL Server 2008,ASP.NET MVC 2.0一种在大表中标记特殊行的方法

我有列出论坛主题的表。

|TopicId|Subject|Author|Views|LastUpdate| 

我有我的家页的“新闻”列表中使用特殊的论坛主题。来自该论坛主题的消息被列为新闻。

现在我需要以某种方式指出哪个论坛主题是新闻。

这里有一些选择:

添加一个名为|IsNewsForumTopic|另一列,但这种感觉矫枉过正,因为其他10000帖子总是有它设置为false

在web.config中存储新闻论坛主题,并根据此选择(不喜欢这种方法)。

与NewsForumTopicId硬编码一个storproc的形式使用数据库全局变量

创建NewsForumTopics和手动在那里添加一条记录:

|NewsForumTopicId| 
| 1174   | 

我喜欢这种方法最。

  1. 它不从数据库中提取DB特定信息。
  2. 不影响大ForumTopics表。
  3. 我可以添加另一列|SpecialType| enum-column稍后可能有一个单独的论坛主题的新闻,更新和错误修复。

请批评和/或建议。

+0

你应该用这种方法去,因为它也是一个我会选择 – 2010-12-08 23:37:02

回答

1

这种情况下,无论您如何看待它,都需要在系统中使用硬编码值。这里的关键问题是:

  • 它随时间变化的可能性有多大?
  • 如果它以某种方式错误设置,它有多糟? (错误的配置,也遭受过黑客攻击)

我一般存储在数据库中,按您的NewsForumTopics表这样的值,但我不会做,对于数据应该从未变化。如果是这种情况,那么在存储过程中对其进行硬编码或将其嵌入到应用程序配置文件中似乎是最明智的。

(再有就是这个问题:“如何防止一些小丑从不断删除一个特殊的条目”,但是这是一个安全问题要问你的下一个SO问题。)

+0

这是不可能的后初步改变安装。如果配置错误,则会显示错误消息 - 无损坏。 – 2010-12-09 02:27:18

0

呃,怎么样一个特殊的作者? AuthorId = -1AuthorName = 'news_bot'。没有涉及到模式更改。

如果不是在项目为时已晚,你也可以考虑:

alt text

+0

这难道不是将问题从“我如何将论坛话题标记为特殊?到“我如何将作者标记为特殊?” – 2010-12-09 02:28:24

相关问题