在我之前的项目中,我将帖子和评论作为两个表:
发布
评论
现在我必须设计对评论的回复。回复只有一级,所以用户只能回复评论,不能回复。树结构只有一层深。我的第一个想法是对评论和回复使用相同的评论表。不过,我添加了一个新列:
评论
- 编号
- 留言
- 时间戳
- 用户名
- zip
- parentcommentid
回复将 parentcommentid 设置为其所属的父评论。家长评论没有(null)
检索给定帖子的评论很简单:
但这次我需要另一个查询来找出评论回复。必须为每个评论完成此操作:
这似乎不是一个好的解决方案,有没有办法让单个查询以正确的顺序返回完整的评论/回复列表? (由时间戳和嵌套决定)
您可以像我在下面提供的那样使用连接并在单个查询中获得结果:
SELECT *, cc.message as replied_message
FROM `post`
JOIN comment as c
ON c.postid = post.id
JOIN comment as cc
ON cc.id = c.parentcommentid
ORDER BY c.timestamp DESC, cc.timestamp DESC;
请注意,只有当 1 条评论只有 1 个回复时,它才能正常工作。此查询不支持对单个评论的多个回复
Tôi là một lập trình viên xuất sắc, rất giỏi!