参考这篇文章:How to implement tag counting用PHP和mySQL实现标记系统。缓存帮助!
我已经完全实现了建议的3表标记系统。要计算每个标记的文章数,我在标记定义表中使用另一个名为tagArticleCount的列。 (其他列是tagId,tagText,tagUrl,tagArticleCount)。
如果我实现了对此表的实时编辑,以便每当用户向文章添加另一个标签或删除现有标签时,tag_definition_table都会更新以更新已添加/已移除标签的计数器。每次进行任何修改时,这将花费额外的查询。 (同时,标记和文章的相关链接条目将从tagLinkTable中删除)。
另一种方法是不允许对计数器进行任何实时编辑,而是使用CRON在指定的时间段后更新每个标记的计数器。 这里是我想讨论的问题。这可以看作是缓存数据库中的文章数量。您能否帮助我找到一种方式,在探索标签时以及该标签的文章计数器不是最新的时候,将列表中的文章呈现在列表中。例如: 1.计数器显示50篇文章,但标签链接表中有55个条目(链接标签和文章)。 2.计数器显示50篇文章,但实际上标签链接表中有45个条目。
如何处理这两个例子中给出的scenerios。我打算使用APC来保存这些计数器的缓存。在你的解决方案中考虑它。还讨论实时/ CRONNED计数器更新中的性能。