2010-12-08 51 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

相關問題