mysql实现评论盖楼的sql_mysql - 网易的评论盖楼设计,用php的话,应该怎样实现?怎样存入数据库?...

讨论了在MySQL中实现评论盖楼的几种方法,包括将父评论转化为HTML字符存储、序列化存储和使用reply_id。提出了路径枚举和闭包表两种更优方案,其中路径枚举允许通过删除特定路径来处理评论删除,闭包表提供了一种更优雅的数据结构。来源于SQL反模式书籍的灵感。
摘要由CSDN通过智能技术生成

如果假设 父评论=上一层评论;子评论=当前我的评论;我目前能想到的所有方法:

把所有父评论全部htmlspecialchars后存入mysql?这样做弊端就是其中一项评论因为和谐原因被删除后,只能将该项评论删除,它的子评论还会出现,因为已经写死在mysql中了。

将所有父评论serialize后存入数据库,读取时再来递归遍历,不过只是一个想法,还不知道具体该怎样遍历。

将所有评论的reply_id 存入数据库,读取时一次性读取这些 reply_id,这种方法相对于第一种灵活一些,能实时删除数据,但是数据库消耗太大,需多次读取数据库。

以上这些个人感觉都不太合适,请问有没有更好的方法?

回复内容:

如果假设 父评论=上一层评论;子评论=当前我的评论;我目前能想到的所有方法:

把所有父评论全部htmlspecialchars后存入mysql?这样做弊端就是其中一项评论因为和谐原因被删除后,只能将该项评论删除,它的子评论还会出现,因为已经写死在mysql中了。

将所有父评论serialize后存入数据库,读取时再来递归遍历,不过只是一个想法,还不知道具体该怎样遍历。

将所有评论的reply_id 存入数据库,读取时一次性读取这些 reply_id,这种方法相对于第一种灵活一些,能实时删除数据,但是数据库消耗太大,需多次读取数据库。

以上这些个人感觉都不太合适,请问有没有更好的方法?

shineba

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值