闲来无事,问个评论模块设计的问题

140 天前
 syam

是关于抖音或者知乎,这种评论区评论的设计,一般会设计成什么样的数据存储结构呢。

他们那种可以嵌套也可以往下延伸的这种。

不是 v 站这种盖楼的论坛模式。

然后感觉有些视频评论的加载量也挺恐怖的。

不是工作任务,单纯是好奇,有知道的麻烦分享下,栓 Q~

顺便延伸一下,如果加上网传的信息茧房, 不同人看到的评论内容是不同的,又该怎么控制呢。

1129 次点击
所在节点    编程
10 条回复
hauibojek
140 天前
我觉得是分了两级,一级是视频的评论,二级是某个评论下的评论
google2020
140 天前
1 、单条评论记录加个 parent id 就可以了,顶级是 0 ,回复就是回复对应的评论的 ID

2 、跟推荐视频一样,给评论加上标签,第一条件先筛选出当前视频的评论,第二条件按标签过滤
tool2d
140 天前
我个人偏爱 no-sql 数据结构,处理这种树状结构的评论很合适。

一般来说只要索引能做好,用不用传统 sql 也挺好的。

当然有些时候公司项目没办法,sql 能让代码受众广,更好维护。
syam
140 天前
@hauibojek 我也觉得如此,但是有个问题,评论不比实时通讯软件,你做二级评论的时候一级评论删内容,应当怎么反馈呢? 用户可能不好理解,我明明看到了一级评论但是我评论不上以及评论的情况
phytry
140 天前
@syam 删除内容只是标记这条记录删除吧,parent id 还是一样不变的,只是前端展示的时候拿不到评论数据,显示当前评论已删除了,后面的逻辑保留就好了,后端做好不能评论已标记删除评论的逻辑就好了吧
syam
140 天前
@phytry 懂了,受益匪浅,感谢
syam
140 天前
@tool2d 哈哈哈 是啊 自己的项目肯定舒服一些 想怎么炫技都可以
公司害怕员工防御性编程 抵制一些花里胡哨甚至能提升性能的方案
屁股决定脑袋给他们做出来就行
Seria
140 天前
只用加一个 parent_id 字段,id,video_id,parent_id ,信息茧房的实现原理是靠打 Tag 实现的,有个 Tag 库,里面记录了不同信息所打的 Tag 和权重以及相似 Tag ,比如一些评论打上了女性友好的 Tag ,那么女性用户看的时候就根据 Tag 库里面的 Tag 和权重进行筛选、优先展示
jiannei
140 天前
数据存储结构大概是

![评论数据]( https://raw.githubusercontent.com/jiannei/snc-pro/master/images/202312211113671.png)

然后参照抖音设计展示效果(一级评论、二级回复,嵌套回复显示▶️)

![评论展示]( https://raw.githubusercontent.com/jiannei/snc-pro/master/images/202312211118243.png)

实际效果: https://sinan.fun/posts/6
syam
140 天前
@jiannei 大佬,牛逼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1002150

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX