2012-08-16 37 views
0

如果我希望用戶能夠發佈對存儲在不同表格中的內容的評論,那麼最好的方法是什麼?在這裏使用連接表是否合適

通過爲每種類型的內容創建額外的註釋表。例如;

Table

或者,使用一個表徵求意見,並使用多個連接表。例如;

Join Table

或者,只需添加對每個表的外鍵進入意見表?

Foreign

回答

1

我只想補充每個表的外鍵到一個單一的意見表。如果這三個評論的格式相同,那麼從長遠來看,這會讓你更容易。值得一提的是,這意味着您必須在註釋表中包含可空的外鍵。

您只會在頁面評論與帖子評論不同時使用第一種方法。否則,只有一個評論表就簡單多了。

如果您希望在多個頁面上發佈相同的評論(我懷疑您需要),那麼只需要中間的表格。這被稱爲多對多關係,但是你描述的是一對多(一頁,文章或個人資料可以有很多評論)

1

因爲你不打算讓一個「評論」被多個頁面共享/ posts/user_profiles最後一種方法並未完全標準化。這將允許數據異常和冗餘。

第一個更正確,也更快。

1

我個人會這樣做的第一種方式,因爲它更簡單。但如果最終傾向於第二種設計,則不需要「has_comments」表。而是在評論表中放置一個fk列,並且另一個列中有一個type_id,用於保存評論是否爲類型頁面,發佈等。

1

我認爲第一個選項是正確的方法。第二種方法感覺就像是爲了正常化而正常化的情況。問問自己:「我從第二種方法中得到什麼?」。答案是在頁面,帖子和user_profiles之間共享相同的評論。但實際上它們並不相同(您可能希望分別存儲頁面評論,發佈評論和用戶個人資料評論)。所以你收益不大。

使用選項編號1並帶有外鍵。它會爲您節省更多的麻煩。