我有一個網站,人們可以發佈帖子並關注其他用戶。我有一個側欄,其中有一個值可以跟蹤自上次訪問後發佈的帖子數量。自上次訪問以來的帖子數量
我想我應該如何處理這個問題。我應該在數據庫中創建一個名爲notifications
的全新表格,它將保存用戶的ID和自上次訪問以來發布的帖子數量,我應該只在現有用戶表中爲此值添加一列,還是應該使用完全不同的方法?
謝謝。
我有一個網站,人們可以發佈帖子並關注其他用戶。我有一個側欄,其中有一個值可以跟蹤自上次訪問後發佈的帖子數量。自上次訪問以來的帖子數量
我想我應該如何處理這個問題。我應該在數據庫中創建一個名爲notifications
的全新表格,它將保存用戶的ID和自上次訪問以來發布的帖子數量,我應該只在現有用戶表中爲此值添加一列,還是應該使用完全不同的方法?
謝謝。
首先:想一想,這是哪個對象的屬性。在你的情況下,計數會因用戶而異,所以我們可以假設它是一個用戶屬性。
我們可以將它掛在最後一次登錄,但如果用戶長時間登錄,這會給我們一個錯誤的計數(用戶不想知道自他上次登錄以來的計數,但自從他最後的活動!)。
所以最簡單的方法可能是在用戶表中添加一個字段,該字段包含最後一個帖子ID - 我們只需SELECT MAX(id) FROM posts
並更新users.lastSeenPost並在每個用戶操作中更新users.lastSeenPost結果。然後我們可以顯示MAX(post.id)-users.lastSeenPost
作爲新的帖子數量。
每個帖子都有製作時的日期記錄。
每個用戶都會有一個日期記錄,記錄他/她上次登錄的時間。
通過下面的SQL語句,你可以問的數據庫,因爲用戶登錄的最後返回的職位數:
SELECT COUNT(*) FROM `posts` WHERE `posts.post_date` > `user.lastlogin_date`
我建議你將創建一個cookie($ _COOKIE [「lastPostId」] )在每個客戶網頁瀏覽器中輸入您的帖子的最後一個ID,當用戶返回時,您將讀取$_COOKIE['lastPostId']
並查詢您的數據庫爲SELECT * FROM posts WHERE id>lastPostId
爲什麼不直接在Posts對象中創建一個方法來返回自上次訪問以來發布的帖子數,並將用戶作爲參數? – Dan