我知道如何在 PHP 和 MySQL 中实现,但现在我有一点思考问题。
有一个论坛网站。每个用户都可以发布一个问题(如 stackoverflow)。那么,当用户返回(2 天后或其他时间)他看到(一条消息或警报...)他的线程上有新帖子时,如何做到这一点?
你懂我的意思吗?我不能将所有这些都放入数据库中,我认为这有点重服务器?
谢谢。
我知道如何在 PHP 和 MySQL 中实现,但现在我有一点思考问题。
有一个论坛网站。每个用户都可以发布一个问题(如 stackoverflow)。那么,当用户返回(2 天后或其他时间)他看到(一条消息或警报...)他的线程上有新帖子时,如何做到这一点?
你懂我的意思吗?我不能将所有这些都放入数据库中,我认为这有点重服务器?
谢谢。
如果我没记错的话,这就是简单机器论坛的处理方式。
每个用户都有他们点击的每个线程的记录。该记录存储该线程在单击时的最高消息 ID。
由于消息 ID 是自动递增的整数,因此任何新消息的消息 ID 都会大于之前的消息 ID。
因此,当用户查看线程列表时,SMF 会查看线程中当前最高的消息 ID 是否大于用户线程记录中存储的 ID。如果它更大,则有新记录,并且线程会获得一个“新消息”图标。否则,线程将获得“无新消息图标”。此外,如果没有线程记录,则用户从未访问过该线程,并且它会获得一个“新消息”图标。
当用户实际点击线程时,线程记录再次更新为最高的消息 ID。
您应该lastActiveTime
在网站上存储用户的。每次用户访问线程或页面时,为他们更新此值。下次他们返回时,对在 之后创建的所有帖子进行查询lastActiveTime
并显示链接列表。
这意味着您只需向用户表添加一个字段,仅此而已。这个新字段包含一个简单的日期,您可以从中确定某些帖子的新鲜度。
您可以将所有内容放入数据库中...
还能去哪里?
魔法大陆?^_^
只需将其全部存储在数据库中,并在每一行中添加某种时间元素。