哪些标签架构最有效/最有效?

34 tags database-design

http://tagging.pui.ch/post/37027745720/tags-database-schemas

Stackoverflow的标签处理是迄今为止我见过的最好的标签之一.

有谁知道它是否是一种模式模式我可以从中得到一些想法?

否则,我只是在寻找有关其他成功实现的标记模式的建议.

TFD*_*TFD 18

这完全取决于标记分布和密度比的数据量和内容

如果您的标记分布和密度比率较低(典型的人工生成数据),则只需为数据使用的每个可能的标记集合生成唯一的ID或哈希值.将"标签集合"id与每个数据实例与这些标签相关联

对于许多形式的人类生成数据,这可以令人惊讶地工作

例如,Stackoverflow有大约500,000个问题,以及~2,000个标签(太多的dupe-ish标签!).大多数问题都少于五个标签.在最糟糕的情况下,您将有500,000个"标签集合"ID来关联,但更现实的是,您将拥有数千个

您还必须在"标签集合"集合上进行实例跟踪或垃圾回收,因为标签的特定组合不再使用

例如

  • 标签:id,tagName
  • TagCollection:id,instanceCount
  • TagCollectionTag:tagCollectionIId,tagId
  • 数据:id,title,content,tagCollectionId

如果使用散列(在集合的所有标签上散列),则插入标签很快.否则你必须搜索TagCollection和TagCollectionTag集合,但这不应该太大

搜索速度很快; 在包含特定标记集的实例中搜索TagCollectionTag,然后查找包含任何tagCollectionId的数据行

希望这不是太混乱:-)