我有一個網站,人們發佈評論,圖片和其他內容。我想添加用戶可以喜歡/不同於這些項目的功能。什麼是一個好的策略來實現類似於facebook'likes'的功能?
我使用數據庫來存儲所有的內容。
有我在看的幾個方法:
方法1:
- 添加「LIKE_COUNT」一欄表,每當有人喜歡的項目增加它
- 添加一個'user_likes'表以保持用戶喜歡的一切。
優點:易於實現,所需的最少查詢。 缺點:該項目需要刷新與每次更改類似的計數。我有一個緩存項目的整個列表,這將打破。
方法2:
- 創建新表「like_summary」和每個項目的總喜歡存儲在該表中
- 添加「user_likes」表保持跟蹤一切用戶已經喜歡。
- 緩存在內存緩存的數據like_summary,且僅當該值改變
沖洗它優點:在主項表減負荷,可以不必擔心緩存。 缺點:對memcache命中太多(一頁顯示20項,需要從memcache加載),可能會很慢
有什麼建議嗎?
如果沒有關於預期負載,訪問數量和總體架構和設置的進一步信息,這個問題沒有多大意義。 – 2011-05-20 05:52:53
你是什麼意思'實現Facebook喜歡'?你想讓你的網站複製這個功能(沒有任何真正的facebook連接),或者你想跨網站進行某種mashup-kludge集成嗎?非常不清楚沒有更多的信息... – phooji 2011-05-20 06:16:41
對不起,因爲不清楚..這裏有一些更多的細節:1.它將只是內部(所以不要被嵌入到外部網站)。 2.你可以認爲它有點類似於堆棧溢出的投票/投票。 3.我想確保它可以擴展到500個併發頁面瀏覽量,每個頁面包含25個「喜歡」項目旁邊顯示的項目。整個系統基於Python/Mysql/Memcache, – Toofan 2011-05-20 06:43:30