有关 V2EX 的“忽略主题”功能的数据库设计 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LeeReamond
V2EX    问与答

有关 V2EX 的“忽略主题”功能的数据库设计

  •  1
     
  •   LeeReamond 2021 年 6 月 17 日 1731 次点击
    这是一个创建于 1668 天前的主题,其中的信息可能已经有所发展或是发生改变。

    @Livid

    用了挺长时间 v2 了一直没用过这个功能,今天点了一下感觉挺好奇怎么实现的。功能上来说应该是按过忽略以后就不会再出现在指定用户的浏览界面里,那是否意味着后端要永久储存每个用户忽略了哪些数据?假设 V2EX 有一百万个主题,是不是理论上每个用户都有存下百万级别的忽略列表的可能,而渲染的时候还要取出来筛选,这不会造成明显压力吗?想问一下是怎么实现的

    12 条回复    2021-06-18 20:29:33 +08:00
    crab
        1
    crab  
       2021 年 6 月 17 日
    全渲染在 js 筛选
    blocked = []
    ignored_topics = []
    LeeReamond
        2
    LeeReamond  
    OP
       2021 年 6 月 17 日
    @crab 好方案,但是我翻了翻 F12 的 cookies 和 localstorage 没找到类似的键值,这是存哪里的?
    SingeeKing
        3
    SingeeKing  
    PRO
       2021 年 6 月 17 日 via iPhone
    @LeeReamond 看页面源码
    dingwen07
        4
    dingwen07  
       2021 年 6 月 17 日
    @crab #1 根据请求 V2EX 页面,忽略主题不是本地 JS 做的
    LeeReamond
        5
    LeeReamond  
    OP
       2021 年 6 月 18 日
    @SingeeKing 看了,没有
    3dwelcome
        6
    3dwelcome  
       2021 年 6 月 18 日
    "那是否意味着后端要永久储存每个用户忽略了哪些数据?假设 V2EX 有一百万个主题,是不是理论上每个用户都有存下百万级别的忽略列表的可能"

    这就和 google 搜索引擎原理一样,理论上一个关键词能搜出几百万条记录。实际上对用户可见的,也只有那些”热数据“,多翻几页后面就空了。

    假设每个用户都存百万级别的忽略列表,这明显是伪需求。就算存也是一部分冷数据,对于终端每个用户,热数据里最多给筛选几百条的存储空间。

    给全站用户一起建立个几万条热数据过滤池,估计也足够了。
        7
    Jooooooooo  
       2021 年 6 月 18 日
    首先你不能忽略几百万个主题

    就像微博你不能关注几百万个人 (要不然时间流咋捞?

    微信不能添加几百万个好友 (要不然朋友圈咋弄
    LeeReamond
        8
    LeeReamond  
    OP
       2021 年 6 月 18 日 via Android
    @Jooooooooo 限制数量是一个简单粗暴的方案,我只是想知道 v2 怎么实现的,毕竟这种规模的业务也不算小了,挺有参考意义的
    Elethom
        9
    Elethom  
       2021 年 6 月 18 日 via iPhone
    这个的确是前端做的,看仔细一点。
    xiaojj
        10
    xiaojj  
       2021 年 6 月 18 日
    前端实现的话,分页就不合理了
    414
        11
    414  
       2021 年 6 月 18 日
    这个帖子应该会被很多人点忽略主题
    LeeReamond
        12
    LeeReamond  
    OP
       2021 年 6 月 18 日
    @Elethom 还有一个问题,前端储存的话是不是表示放弃了多端同步的需求
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2576 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 134ms UTC 02:36 PVG 10:36 LAX 18:36 JFK 21:36
    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