如果我希望用戶能夠發佈對存儲在不同表格中的內容的評論,那麼最好的方法是什麼?在這裏使用連接表是否合適
通過爲每種類型的內容創建額外的註釋表。例如;
或者,使用一個表徵求意見,並使用多個連接表。例如;
或者,只需添加對每個表的外鍵進入意見表?
如果我希望用戶能夠發佈對存儲在不同表格中的內容的評論,那麼最好的方法是什麼?在這裏使用連接表是否合適
通過爲每種類型的內容創建額外的註釋表。例如;
或者,使用一個表徵求意見,並使用多個連接表。例如;
或者,只需添加對每個表的外鍵進入意見表?
我只想補充每個表的外鍵到一個單一的意見表。如果這三個評論的格式相同,那麼從長遠來看,這會讓你更容易。值得一提的是,這意味着您必須在註釋表中包含可空的外鍵。
您只會在頁面評論與帖子評論不同時使用第一種方法。否則,只有一個評論表就簡單多了。
如果您希望在多個頁面上發佈相同的評論(我懷疑您需要),那麼只需要中間的表格。這被稱爲多對多關係,但是你描述的是一對多(一頁,文章或個人資料可以有很多評論)
因爲你不打算讓一個「評論」被多個頁面共享/ posts/user_profiles最後一種方法並未完全標準化。這將允許數據異常和冗餘。
第一個更正確,也更快。
我個人會這樣做的第一種方式,因爲它更簡單。但如果最終傾向於第二種設計,則不需要「has_comments」表。而是在評論表中放置一個fk列,並且另一個列中有一個type_id,用於保存評論是否爲類型頁面,發佈等。
我認爲第一個選項是正確的方法。第二種方法感覺就像是爲了正常化而正常化的情況。問問自己:「我從第二種方法中得到什麼?」。答案是在頁面,帖子和user_profiles之間共享相同的評論。但實際上它們並不相同(您可能希望分別存儲頁面評論,發佈評論和用戶個人資料評論)。所以你收益不大。
使用選項編號1並帶有外鍵。它會爲您節省更多的麻煩。