c 回复mysql数据库_mysql – 评论和回复的数据库设计

您可以只使用一个表,其中包含一个ParentID字段.如果记录没有值,则为注释,否则为回复(对注释或回复).

您可以查询记录的ParentID记录(检查它的ParentID)以查看此回复是对评论还是回复.

编辑:以上是一个相当实用的解决方案.但是,要使用规范化版本,仍保留一个Comments表(没有ParentID),并创建一个ReplyTo表,其中包含CommentID和ResponseID,两者都是Comments表中记录的ID.

使用这个想法,以下sql将显示每条评论的评论和“回复”,每个评论都有一条评论:

select c.comment, r.comment as reply

from comment as c, comment as r, replyto as rt

where c.ID = rt.CommentID

and r.ID = rt.ReplyID

正如Dimitrii指出的那样,它不会显示没有回复的注释 – 为此你需要一个外连接查询(没有测试语法):

SELECT c.comment, r.comment as reply,

from Comment c

left outer join Comment r on c.id = r.id

left outer join replyto rt on rt.responseid = r.id

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值