LeeReamond
V2EX  ›  问与答

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

  •  1
     
  •   LeeReamond · Jun 17, 2021 · 2403 views
    This topic created in 1976 days ago, the information mentioned may be changed or developed.

    @Livid

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

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

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

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

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

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

    微信不能添加几百万个好友 (要不然朋友圈咋弄
    LeeReamond
    LeeReamond
    OP
    Jun 18, 2021 via Android
    8
    @Jooooooooo 限制数量是一个简单粗暴的方案,我只是想知道 v2 怎么实现的,毕竟这种规模的业务也不算小了,挺有参考意义的
    Elethom
    Elethom
    Jun 18, 2021 via iPhone
    9
    这个的确是前端做的,看仔细一点。
    xiaojj
    xiaojj
    Jun 18, 2021
    10
    前端实现的话,分页就不合理了
    414
    414
    Jun 18, 2021
    11
    这个帖子应该会被很多人点忽略主题😅
    LeeReamond
    LeeReamond
    OP
    Jun 18, 2021
    12
    @Elethom 还有一个问题,前端储存的话是不是表示放弃了多端同步的需求
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1775 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 100ms · UTC 04:57 · PVG 12:57 · LAX 20:57 · JFK 23:57
    ♥ Do have faith in what you're doing.