闲来无事,问个评论模块设计的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
syam
V2EX    编程

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

  •  
  •   syam 2023-12-21 09:50:23 +08:00 1916 次点击
    这是一个创建于 705 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    10 条回复    2023-12-21 11:33:26 +08:00
    hauibojek
        1
    hauibojek  
       2023-12-21 09:56:55 +08:00
    我觉得是分了两级,一级是视频的评论,二级是某个评论下的评论
    google2020
        2
    google2020  
       2023-12-21 10:00:54 +08:00
    1 、单条评论记录加个 parent id 就可以了,顶级是 0 ,回复就是回复对应的评论的 ID

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

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

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

    ![评论数据]( 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
        10
    syam  
    OP
       2023-12-21 11:33:26 +08:00
    @jiannei 大佬,牛逼
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2964 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 00:30 PVG 08:30 LAX 16:30 JFK 19:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86