參考這篇文章: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計數器更新中的性能。