2013-12-12 80 views
0

我想添加使用分层设计的评论系统。下面是从我的数据库,保持岗位的跟踪样本/回复(注意,更多的行添加为更多的人回复):评论系统的分层数据

post_id | parent_id 
    1   1 
    2   1 
    3   1 
    4   2 
    5   3 
    6   2 
    7   4 

我已经做了关于不同的方法来输出一些研究和操作数据得到你需要什么,但我不确定哪种方法最适合评论系统,以及我会如何做。

我知道邻接表不会处理,因为它无法处理深层树。

请帮忙。

+0

你并不需要*深*的树。十几个嵌套级别将无法使用 –

+0

@YourCommonSense这实际上取决于答复的数量。 – Bagwell

+0

确实。 20个嵌套回复将无法读取 –

回答

-1

从目前的趋势来看,AL是比较可以接受的解决方案。所有现代网站倾向于将所有评论转储到一个页面上 - 意味着不需要复杂的SQL逻辑,只是对所有评论的简单查询属于单篇文章。还有一个循环将它们存储在数组中。

如果你不想循环,但得到一个已经排序的查询中的所有注释,那么Materialized Path会很方便。对于实施,你可以找到很多例子,我相信。

+0

通过物化路径,如果路径非常长(例如:'1,2,3,4,5,6,7,8,9,10 ... 1000')怎么办?它会变得多慢? – Bagwell

+0

你又错了。 1000个嵌套级别绝对不可能。虽然10-20是相当可忍的数字。请注意,我相信1,2,3不会起作用。 000100020003它必须是。 –

+0

或更好的数字转换为base36以缩短它们更多 –