2010-09-04 29 views
1

我想在數據庫表中存儲評論回覆。 我有一個表來存儲評論:在sql server中存儲和檢索評論回覆的最佳方法

comment_id comment_par_id, comment_from comment_text comment date .... 

新的評論已PAR_ID = 0,而回復已PAR_ID設定評論id來它被回答。

嵌套只是一個級別。回覆答覆也有相同的父母身份。

這是存儲回覆的最佳方式嗎?

我看了很少的文章,建議創建一個單獨的表來存儲答覆。 然後有一個映射列來將註釋指向主表。

另一個替換的是創建一個存儲類的映射第三個表:

reply_id comment_id 

這是最好的辦法嗎?

無論如何,我只運行一個查詢來返回給定評論的答覆。 而且它是最運行的查詢並且必須運行得很快,因爲我們在註釋表中有數百萬行。

+0

檢查WordPress的評語表,它的直線前進性好。 – 2010-09-04 02:26:14

回答

0

對許多(回覆)關係來說,這是一個(評論),因此您應該使用兩個表,並將回覆表的外鍵鍵入註釋表。

+0

我希望將相同評論的回覆按順序存儲。 reply_id COMMENT_ID REPLY_TEXT 1 43這是答覆#1 2 43這是回覆#2 3 48 THIS IS REPLY#1 4 48 THIS IS REPLY#2 – Lisa 2010-09-04 04:19:35

+0

然後使用上的答覆表複合鍵,組成commentID然後replyID – ThatSteveGuy 2010-09-04 05:06:02

1

如果我理解你是對的,你有某種「原創帖子」,有一組回覆?與StackOverflow的工作方式類似,最初的問題和一組答案?如果是這樣的話,有幾個選擇。可以選擇使用支持不同「類型」記錄的單個表。這種選擇的好處是隻需要一張桌子,但它也有更多含糊不清的缺點。人們必須知道多種類型的記錄存儲在這樣的表格中,這使得它更加令人困惑。

更好的選擇是對於每個「類型」的記錄有多個表。這消除了模糊性,同時增加了複雜性。從不同的角度來看,即使有些數據是相同的,類似記錄的不同「類型」通常也有不同的數據。通過使用單獨的表格,可以更容易地爲每種評論類型添加不同的特徵(原始版本與答覆版本),而無需訴諸各種奇怪的方式來存儲和引用單一表格系統中額外的「獨特」數據。

+0

這就像是Stackoverflow對問題 – Lisa 2010-09-04 04:14:35

+0

的回答我將使用單獨的表,通過外鍵相關。我會爲原始帖子(問題)提供一張表格,併爲答覆(答案)提供一張表格。答案將通過ParentPostID(或QuestionID)外鍵與問題相關。它非常標準的數據庫實踐。 – jrista 2010-09-04 04:24:17

相關問題