2012-12-09 37 views
0

我目前正在爲更大的應用程序構建一個論壇組件,我正在考慮對數據庫模式某些部分採用不同的方法。具體而言,我正在考慮在一張表格中表示主題和帖子。雖然我將主題和帖子視爲幾乎相同,但我感到有些擔心,因爲這可能會使事情在未來變得更加靈活。代表一個表中的主題和表格與兩個表格?

當查詢特定論壇的主題時,將顯示標題和第一篇文章以及一些用戶信息(基本上是名稱和頭像)。在這個應用程序中,除了視圖和回覆之外,還有各種主題和帖子使用的屬性。也許是標題和forum_id(forum_id,因爲如果主題更改爲另一個論壇而不是更改主題關係中的forum_id屬性,那麼這意味着可能需要影響數百個記錄)。

的表格看起來像什麼,我有如下位置:

TOPIC   POST   
topic_id   poster_id 
forum_id   topic_id 
poster_id  content 
title   upvote 
views   dnvote 
replies   closed 
post_id   deleted 
       last_edited 
       last_editor 
       parent_id 
       content 
       post_id 

這樣做,這樣,使用表繼承,生成主題中的職位將需要4臺通過標題,POST,用戶加入和TOPIC_TYPE。另一方面,如果我決定採用單表方式,如果topic_type是普通帖子,我應該簡單地將視圖,回覆,標題和forum_id屬性留爲空嗎? (topic_type引用顯示的主題類型的適當圖標,並將用於統計等)

回答

1

如果您明確承諾使用關係技術(我會考慮NoSQL db for this like like Mongo等)好吧)我會按照你的建議分成兩個表格。

你的情況在這裏是關係主細節設計或整體部分的基礎,我認爲兩個表是適當的。

0

我認爲在這種情況下,簡單的規範化是首選。生成不同類型的報告也很有用。雖然可能會使用單個表,但正如您在此情況下設計表一樣,如果您使用兩個表更易於管理,以避免多次輸入相同的值。

0

這樣區分「主題」和「主題發起者」可能是值得的。 「主題啓動者」是不是回覆的評論。每個主題都有一個主題啓動器,主題表中的外鍵可以引用該主題。

除此之外,我同意你的分析和你的設計。

相關問題