gpt4 book ai didi

mysql - 帖子、评论和回复的数据库模式设计

转载 作者:可可西里 更新时间:2023-11-01 08:10:10 28 4
gpt4 key购买 nike

在我之前的项目中,我将帖子和评论作为两个表:

发布

  • 编号
  • 正文
  • 时间戳
  • 用户名

评论

  • 编号
  • 留言
  • 时间戳
  • 用户名
  • zip

现在我必须设计对评论的回复。回复只有一级,所以用户只能回复评论,不能回复。树结构只有一层深。我的第一个想法是对评论和回复使用相同的评论表。不过,我添加了一个新列:

评论

  • 编号
  • 留言
  • 时间戳
  • 用户名
  • 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 个回复时,它才能正常工作。此查询不支持对单个评论的多个回复

关于mysql - 帖子、评论和回复的数据库模式设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37456154/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com