2016-01-14 24 views
1

我有一個包含文章的網站(由articleID獨一無二),每個網站都有評論,評論可以無限期地回覆評論。這應該如何在SQL數據庫中實現和查詢?如果評論有自己的表格,並且只需逐行添加,無論回覆有多深?在數據庫中實現它的標準方法是什麼?如何在數據庫中實現註釋部分

例子:
我的文章(ID:5)
這是文本到我的文章

評論:
用戶10:我恨這個文章(USER_ID :10,Comment_ID:1)
              用戶21:不,它的一個好文章。 (USER_ID:21,COMMENT_ID:4)
                                用戶54:你一定是瘋了。 (USER_ID:54,COMMENT_ID:6)
                用戶76:我討厭本文太(USER_ID:76,COMMENT_ID:12)
用戶23:哇這篇文章是壞的(User_ID:23,Comment_ID:2)

如果評論標籤樂只是看起來像:
COMMENT_ID:1個
評論:我討厭這條
日期:2016年1月1日
USER_ID:10
Reply_TO_ID:空


COMMENT_ID:4
評論:無,它是一個好文章。
日期:2016年1月2日
USER_ID:21
Reply_TO_ID:1

...然後只是做一個查詢爲每個評論,尋找一個有一個Reply_TO_ID這一評論匹配的意見和做遞歸?

+3

多種方式來解決這個問題,但我認爲文章[管理MySQL中的分層數據](http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/)是一個好的開始。 – GolezTrol

+0

鄰接列表https://en.wikipedia.org/wiki/Adjacency_list – Ejaz

回答

0

更好地創建兩個表格;一個用於評論,另一個用於答案/回覆。 articleID是評論和文章表格之間的常用鍵值,replay_id是答案/答覆表格和評論表格之間的常用鍵值。