【问题标题】:New posts notification with PHP and MySQL使用 PHP 和 MySQL 的新帖子通知
【发布时间】:2012-05-02 03:26:17
【问题描述】:

我知道如何在 PHP 和 MySQL 中实现一些东西,但现在我有点思考问题。

有一个论坛网站。每个用户都可以发布一个问题(如 stackoverflow)。那么,当用户返回(2 天后或其他时间)他看到(一条消息或警报...)他的线程上有新帖子时,如何做到这一点?

你知道我的意思吗?我不能将所有内容都放入数据库中,我认为这有点重服务器??

谢谢。

【问题讨论】:

    标签: php mysql notifications new-operator posts


    【解决方案1】:

    如果我没记错的话,这是简单机器论坛的处理方式。

    每个用户都有他们点击过的每个话题的记录。该记录存储了该线程在被点击时的最高消息 ID。

    由于消息 ID 是自动递增的整数,因此任何新消息的消息 ID 都会大于前一个。

    因此,当用户查看线程列表时,SMF 会查看线程中当前最高的消息 ID 是否大于用户线程记录中存储的 ID。如果它更大,则有新记录,并且线程会获得“新消息”图标。否则,线程将获得“无新消息图标”。此外,如果没有线程记录,则用户从未访问过该线程,并且它会获得一个“新消息”图标。

    当用户实际点击线程时,线程记录再次更新为最高的消息ID。

    【讨论】:

    • 谢谢。但我了解到,仅使用 id 并不能真正保存,因为 id 可以在删除条目后重复使用,所以带时间的日期将是最好的解决方案?
    • @JohnBrunner,带有 auto_increment 字段,不重复使用 id。
    【解决方案2】:

    您应该将用户的lastActiveTime 存储在站点上。每次用户访问线程或页面时,为他们更新此值。下次他们返回时,查询在lastActiveTime 之后创建的所有帖子并显示链接列表。

    这意味着您只需在用户表中添加一个字段,仅此而已。这个新字段包含一个简单的日期,您可以从中确定某些帖子的新鲜度。

    【讨论】:

      【解决方案3】:

      可以将所有内容放入数据库...

      这一切还会去哪里?

      魔法世界? ^_^

      只需将其全部存储在数据库中,每行添加某种时间元素即可。

      【讨论】:

        猜你喜欢
        • 2011-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-09
        • 1970-01-01
        • 1970-01-01
        • 2018-02-19
        相关资源
        最近更新 更多