V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Newyorkcity
V2EX  ›  问与答

好奇那些背单词软件背后的数据库是如何组织关系的呢?

  •  
  •   Newyorkcity · 2021-01-09 15:06:33 +08:00 · 1814 次点击
    这是一个创建于 1399 天前的主题,其中的信息可能已经有所发展或是发生改变。
    所有单词和单词解释,例句什么的,可能都在一个表 A 中。

    然后用户『甲』选择学习『四级英语』单词书,那么这个用户在学习过程中,显然软件要记录该用户下一次复习这个单词的日期,用户可能给这个单词添加的笔记。这些都放在另一个表 B 中?

    然后用户『乙』,用户『丙』……都是放在这个表中?

    那这个表应该有显式主键么?用 user_id 和 word_id 构成一个唯一组合索引?

    那显然扩张到我有 10 万个用户,平均每个用户要 3 三千个单词,这就 3 亿条记录了啊,那表 B 不会爆炸吗?分表?
    8 条回复    2021-01-09 20:32:51 +08:00
    gavindexu
        1
    gavindexu  
       2021-01-09 17:37:32 +08:00 via iPhone
    蹲一下大神的答复 (・_・;
    aeo13
        2
    aeo13  
       2021-01-09 17:38:31 +08:00
    同蹲 (・_・;
    matrix67
        3
    matrix67  
       2021-01-09 17:40:05 +08:00
    三千单词我感觉存本地啊。四级,六级,雅思,不都可以本地存一下。远端只要存 metadata 就行了啊
    towser
        4
    towser  
       2021-01-09 17:43:57 +08:00
    单词软件数据边界很清晰,关系型数据库很容易按用户 ID 做分区。存 redis 就更简单了,一个用户一个 hash key 解决问题。
    Jooooooooo
        5
    Jooooooooo  
       2021-01-09 17:49:14 +08:00
    用缓存现算
    qiayue
        6
    qiayue  
       2021-01-09 17:55:05 +08:00
    有 500 个单词的用户就是高质量用户了,更别说有 3000 个单词的用户。
    一个高质量的用户价值 500 块,10 万个就值 5000 万,那时候什么机器买不起啊,性能不够,机器来凑。

    从广告角度,背单词类 APP,买一个用户成本按照 20 块钱算(比实际低),高质量用户的比例假设 10%,那么一个高质量用户的成本就是 200 块钱。
    10 万个高质量用户的市场营销费用是 2000 万。

    你都花出去 2000 万了,更不用担心这个问题啊。
    Newyorkcity
        7
    Newyorkcity  
    OP
       2021-01-09 18:01:41 +08:00
    @qiayue 额,用户选择了一个四级的单词书,这个单词书里 3000 个单词就要为用户构建下次记背时间了吧,但用户可能转头就把这个 app 卸载了,这样就不是高质量用户了吧。
    madingyu
        8
    madingyu  
       2021-01-09 20:32:51 +08:00 via iPhone
    前几年某 app 单词列表到 500 页之后点击就没反应了,投诉未果后转战 anki
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   979 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:22 · PVG 06:22 · LAX 14:22 · JFK 17:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.