什么标签模式是最有效率的?
http://tagging.pui.ch/post/37027745720/tags-database-schemas
到目前为止,Stackoverflow的标签处理是最好的。
有谁知道,如果这是一个模式模式,我可以从一些想法?
否则,我只是在寻找其他标签架构已经成功实施的build议。
这一切都取决于数据量和内容来标记分布和密度比率
如果您的标签分布和密度比较低(典型的人为生成的数据),您可以简单地为数据使用的每个可能的标签集合生成唯一的ID或散列。 将“标记集合”标识与每个数据实例与这些标记相关联
对于许多人类生成的数据来说,这可以令人惊讶地工作
例如,Stackoverflow有500,000个问题,和〜20,000个标签(太多的标签!)。 大多数问题less于5个标签。 在最糟糕的情况下,您将有50万个“标签收集”ID相关联,但更现实的是,您将拥有数千个ID
您也可能必须在“标记集合”集合上进行实例跟踪或垃圾回收,因为标记的特定组合不在使用中
例如
- 标签:id,tagName
- TagCollection:id,instanceCount
- TagCollectionTag:tagCollectionIId,tagId
- 数据:标识,标题,内容,tagCollectionId
如果使用散列(对集合的所有标记进行散列),插入标记的速度会很快。 否则,你必须searchTagCollection和TagCollectionTag集合,但是这不应该太大
search速度很快; searchTagCollectionTag以获取包含特定标记集的实例,然后使用这些tagCollectionId中的任意一个查找数据行
希望不是太混乱:-)
你可以从这开始: http : //tagging.pui.ch/post/37027746608/tagsystems-performance-tests
在这里提到: 扩展Web应用程序和标记 – Digg,Del.icio.us,StackOverflow