我使用PostgreSQL在PHP中编写了一个简单的论坛。该论坛由许多包含主题的子论坛(或类别,如果您愿意)组成。我有一个表存储用户上次访问主题的时间。它是这样的: user_id,topic_id,时间戳。
通过比较上次主题回复的时间戳与上次用户访问的时间戳,我可以轻松确定哪些主题应标记为未读。
我的问题是:如何有效确定哪些子论坛(类别)应标记为未读?我想出的就是:每次用户访问某个主题时,都要更新访问时间戳并检查当前子论坛中的所有主题是读取还是未读取。如果它们都被读取,则将子论坛标记为对用户读取。否则,将其标记为未读。但我认为必须有另一种方式。
提前谢谢。
答案 0 :(得分:1)
有许多方法(比如你的)可以实现类似的行为,因为你提到效率我会考虑性能很重要。
之前处理此问题的方式并未涉及数据库来处理未读内容。考虑到这一点,我的建议是:
p.s。:这与一个人知道自己没有阅读的内容有多重要。在我的建议中,这不是至关重要的,因为它不是100%可靠(毕竟我们没有使用数据库/适当的持久性)