http://tagging.pui.ch/post/37027745720/tags-database-schemas
Stackoverflow的标签处理是迄今为止我见过的最好的标签之一.
有谁知道它是否是一种模式模式我可以从中得到一些想法?
否则,我只是在寻找有关其他成功实现的标记模式的建议.
这完全取决于标记分布和密度比的数据量和内容
如果您的标记分布和密度比率较低(典型的人工生成数据),则只需为数据使用的每个可能的标记集合生成唯一的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的数据行
希望这不是太混乱:-)