2012-02-24 72 views
0

我正在創建一個網站,其中的內容將被存儲爲幾個不同的雜誌。用戶將使用問題和答案訪問雜誌。如何跟蹤用戶對多個內容的訪問?

一旦他們被授予訪問權限,我希望他們繼續訪問一段時間。

我想數據庫表可以存儲cookie_id,issue_id和過期。當用戶訪問他們的第一個問題時,cookie會存儲在他們的計算機上,其中包含一個新的唯一ID。該唯一ID,剛剛訪問的內容的問題ID以及過期日期存儲在數據庫中。

如果他們訪問另一個問題,則會創建一個新的數據庫條目,但Cookie ID將被重用。

當他們返回站點時,cookie用於提取所有相關的數據庫條目,並允許用戶重新訪問這些文章中的任何一篇,直到它們過期。

有沒有更智能的方法來做到這一點?

預先感謝您!

回答

0

Cookie存在的問題是,它們可能被擦除或損壞(兩者都不太可能,但可能)。

但是,您的解決方案基本上是我會做的。

這裏是我會做什麼?

當他們登錄一個cookie將與他們的用戶標識設置

(可如果需要加密)。我不會使用日期/時間/隨機值的任何聚合,因爲每次用戶返回時,這些值很可能會有所不同。

在隨後的頁面上,檢查是否設置了cookie id(可能會保存數據庫查詢 - 如果您不需要拉出其他用戶信息並因此減少服務器上的負載)。

我會使用數據庫表並使用它們的用戶標識作爲進一步訪問的參考,以獲取以前讀取的問題。如果有(或將會)很多用戶考慮將所有信息放入數據庫中的一條記錄中,並以指定格式插入數據,例如issue1:date1,issue2:date2等。這將只需要1分貝查詢來更新以添加,更新和/或刪除條目。

但是,爲此我可能會認真檢查HTML5的本地存儲解決方案 - 我還沒有檢查過使用它還是支持它有多好。

+0

非常感謝。因爲訪問將會非常短暫(最多幾天,儘管尚未設置確切的值),我可能會每天運行一次數據庫清理過期的密鑰以保持數據庫大小合理。再次感謝你的幫助。 – 2012-02-26 22:43:07