我有这样的表结构。
--comments
id article_id comment_parent
1 9 0
2 0 1
3 0 1
4 0 2
5 0 4
基本上,第一条评论是关于article_id的,评论的回复是关于comment_parent的。上面的数据库创建了一个嵌套的注释,如下所示:
- Comment 1
- Comment 2
- Comment 4
- Comment 5
- Comment 3
问题是,我找不到如何确定文章中有多少条评论。目前,第9条有5条评论。
我相信一个递归函数可以解决这个问题,但我的Eloquent经验非常基础。
我该怎么办?
Article::find(9)->getAllCommentsAmount(); //5
答案 0 :(得分:4)
如果允许,我建议将article_id
添加到子评论中。它可以更容易地计算某篇文章的评论。
答案 1 :(得分:1)
您可能希望在数据库中实现嵌套集模式。
这里有一个相当流行的Laravel / Eloquent实现:
https://github.com/etrepat/baum
嵌套集专门设计用于与您的嵌套严重嵌套的数据,并允许您快速轻松地(即无需大量递归)查询数据。