我有一個網站,用戶瀏覽搜索結果。記住用戶查看了哪些結果會很有用,並將它們標記爲Viewed
。創建最近查看的列表,MySQL或Redis
問題:要實現這樣的Recently Viewed
列表功能,這是推薦的方法嗎?
使用像MySQL這樣的RDBMS。每次用戶點擊一個鏈接,向服務器發起一個AJAX調用,以將新行插入到表
views
中,其列id
,user_id
,item_id
,timestamp
。在顯示任何搜索結果之前,每個項目將對照表views
檢查每個項目,以確定該列表是否將標記爲viewed
。 (如果這會有所幫助,我的PHP框架Laravel可以使用數據庫或Redis的作爲會議的驅動程序,而不是使用cookie)使用的內存中的數據存儲像Redis的。我沒有使用redis/memcached的經驗,考慮使用它的原因是因爲大量寫入
viewed
表,讀取主要由主鍵選擇(是否存在Redis中的索引概念?)
感謝您的任何建議和意見,尤其是那些對這兩種技術有經驗的人。
您是否打算在當前瀏覽會話之外堅持這一點? –
是的,它應該持續到2周後,「views」表可以被修剪。視圖歷史記錄只對註冊用戶可用。 – Nyxynyx
目前還不清楚爲什麼這個標籤爲'postgresql' –