我有一个人们可以发帖并关注其他用户的网站。我有一个侧边栏,其值可以跟踪自您上次访问以来发布的帖子数量。
我一直在思考如何处理这个问题。我应该在名为notifications
的数据库中创建一个全新的表来保存用户的id以及自上次访问以来的帖子数量,我应该只在现有用户表中添加一个列来获取此值,还是应该使用一种完全不同的方法?
感谢。
答案 0 :(得分:1)
首先:想想,这是一个属性的对象。在您的情况下,计数将因用户而异,因此我们可能会假设它是用户属性。
我们可以在最后一次登录时挂起它,但如果用户长时间登录,这会给我们一个错误的计数(用户不想知道自上次登录以来的计数,但是因为他的最后的活动!)。
所以最简单的方法是在users表中添加一个字段,该字段包含最后一个帖子ID - 我们只需SELECT MAX(id) FROM posts
并更新users.lastSeenPost,并在每个用户操作上显示结果。然后,我们可以将MAX(post.id)-users.lastSeenPost
显示为新的帖子计数。
答案 1 :(得分:0)
每个帖子都有一个日期记录。
每个用户都会有一个日期,记录他/她上次登录的时间。
通过以下SQL语句,您可以要求数据库返回自用户最后登录以来的帖子数量:
SELECT COUNT(*) FROM `posts` WHERE `posts.post_date` > `user.lastlogin_date`
答案 2 :(得分:0)
我建议你在每个客户的webbrowser中创建一个cookie($ _COOKIE ['lastPostId']),其中包含你帖子的最后一个ID,当用户返回时,你会看到$_COOKIE['lastPostId']
并查询你的数据库为SELECT * FROM posts WHERE id>lastPostId