V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
nutting
V2EX  ›  程序员

MySQL 做标签系统?

  •  
  •   nutting · 2022-07-04 09:40:45 +08:00 · 4427 次点击
    这是一个创建于 898 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如果只用一般的表关系如何实际性能最好(主要是检索)?或者是有啥特殊数据结构可以?

    21 条回复    2022-07-04 17:45:54 +08:00
    lazyfighter
        1
    lazyfighter  
       2022-07-04 09:48:59 +08:00
    mark 对标签系统很好奇,生产上没有实践过
    ql562482472
        2
    ql562482472  
       2022-07-04 09:52:41 +08:00
    你说的标签,是指 tag 还是 label ?
    nicreve
        3
    nicreve  
       2022-07-04 09:57:09 +08:00
    标签系统是指有父子关系的标签树么?常规操作不是用邻接表存储么?
    nutting
        4
    nutting  
    OP
       2022-07-04 09:58:50 +08:00
    各位,不用太复杂,就是 tag
    icyluna
        5
    icyluna  
       2022-07-04 10:01:09 +08:00 via iPad   ❤️ 1
    http://docs.typecho.org/database
    不知道这篇是否有帮助
    dqzcwxb
        6
    dqzcwxb  
       2022-07-04 10:03:41 +08:00
    一对多设计,一个用户对应多个标,一个标一条记录
    dzdh
        7
    dzdh  
       2022-07-04 10:04:03 +08:00
    realpg
        8
    realpg  
       2022-07-04 10:08:33 +08:00
    基本的多对多三表结构解君愁
    lower
        9
    lower  
       2022-07-04 10:22:41 +08:00
    像 es 那样搞个倒排表?词库就是标签库……好像跟多对多关系表搞出来本质差不多😂
    westoy
        10
    westoy  
       2022-07-04 10:25:42 +08:00
    教科书一点就 many to many 啊

    但是你偷个懒直接存 json 、array 其实也可以, 反正前期数据小靠缓存顶顶问题也不大, 后期数据大也是要上 redis set 或者 es, 再配缓存的
    tyit
        11
    tyit  
       2022-07-04 12:47:53 +08:00 via iPhone
    redis 、mongodb
    dunkelheit
        12
    dunkelheit  
       2022-07-04 13:40:37 +08:00
    toxi solution
    BeautifulSoap
        13
    BeautifulSoap  
       2022-07-04 13:47:32 +08:00
    lz 你确定你的标签系统不用考虑别名? 比如 function, 函数, func 这些标签应该视为同一个标签之类的
    THESDZ
        14
    THESDZ  
       2022-07-04 13:51:26 +08:00
    多对多,建好索引
    主体表,关系表,标签表

    主体表可能有多个,关系表中就多个 主体字段(用于区分主体)。
    THESDZ
        15
    THESDZ  
       2022-07-04 13:53:31 +08:00
    @THESDZ #14
    可以额外维护一个`tag-主体表: 主体 ids`的缓存,用于快速检索
    wonderfulcxm
        16
    wonderfulcxm  
       2022-07-04 13:54:43 +08:00 via iPhone
    标准的多对多,可以参考 WordPress 的那几张 taxonomy 表的设计
    issakchill
        17
    issakchill  
       2022-07-04 13:59:16 +08:00
    之前做过 偷懒做成 json 字段 然后有个主表做管理
    meshell
        18
    meshell  
       2022-07-04 15:06:00 +08:00
    直接 wordpress 结构吧
    IDAEngine
        19
    IDAEngine  
       2022-07-04 16:42:13 +08:00
    直接存 mongodb
    815979670
        20
    815979670  
       2022-07-04 17:05:13 +08:00
    标签不多的话 用 bitmap ? 存储体积小 查起来也方便
    zlowly
        21
    zlowly  
       2022-07-04 17:45:54 +08:00
    个人感觉,传统关系型数据库只能应付中小型数据量,单一标签查询需求的标签系统,如果是千万级以上数据量,有复合查询需求的,用关系型数据库实现性能会很差。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3277 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:55 · PVG 19:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.