V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HypoChen
V2EX  ›  数据库

基于标签的信息管理数据库应该怎么设计?

  •  1
     
  •   HypoChen · 2016-01-28 14:02:46 +08:00 · 803 次点击
    这是一个创建于 3216 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如说我有一堆收集的信息,需要给他们打若干标签,相同标签的还可以方便查找。

    应该怎么设计数据库?按照我之前的设计方式,除了信息表,标签表,再加个关系表。感觉这样太乱了。因为标签是让用户自己打的,个数不限,那么标签表不就膨胀的特别厉害么。

    还有别的数据库设计方式吗?豆瓣又是怎么实现他的标签管理的?

    7 条回复    2016-01-28 14:40:12 +08:00
    JiShuTui
        1
    JiShuTui  
       2016-01-28 14:16:57 +08:00
    不要怕数据多,只要能够保证用户打的标签都是相关的而不是乱打的,那么就不要怕数据量大
    经典的设计都是加一个关系表
    qile1
        2
    qile1  
       2016-01-28 14:18:44 +08:00 via Android
    一个信息 id 对应一堆标签,或者一个标签对应一堆信息
    不就是这样,难道用二进制维护一个字段,每个代表一个标签,没增加一个标签,二进制多一位
    kslr
        3
    kslr  
       2016-01-28 14:29:32 +08:00
    tags_map
    jsq2627
        4
    jsq2627  
       2016-01-28 14:32:54 +08:00
    这样设计没什么问题的。遇到具体的性能问题再具体优化。
    loading
        5
    loading  
       2016-01-28 14:36:17 +08:00 via iPhone
    看你的业务逻辑!其他都是空谈,先跑起来再说!
    gamexg
        6
    gamexg  
       2016-01-28 14:39:03 +08:00 via Android
    自动推荐常用标签,可以让标签数量降低。
    京东商品评价时意思差不多就直接点一下而不是自己创建一个新标签。
    est
        7
    est  
       2016-01-28 14:40:12 +08:00
    mysql 官方曾经有一篇专门的 article 讲这个问题。可惜找不到了。 -__-
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1018 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:02 · PVG 03:02 · LAX 11:02 · JFK 14:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.