我现在在一个论坛上工作,我几乎完成了,但现在我到了一个有点困难的地步。
您可能熟悉 phpBB 论坛。有一个很酷的功能可以将帖子标记为已读和未读。
我在这里找到了一个类似的线程,但我并没有真正得到解决方案。
如果我节省用户登录的时间并标记过去创建的所有帖子,它可能会起作用。但现在,下一步是什么?用户阅读了未读帖子,我想将其标记为“已读”,但其他帖子仍应标记为“未读”,直到他阅读它们。我必须存储这些数据,不是吗?
我实际上也一直在考虑将这些数据保存在 cookie 中。那个怎么样?
你应该有一个多对多关系的表:
marked_as_read
--------+--------
user_id | post_id
--------+--------
删除任何超过(例如)30 天的帖子,以保持表格处于歇斯底里的大小。
在您的 PHP 代码中,将此表中不存在且小于 30 天的任何帖子标记为未读。阅读答案后,将其放在这里。
编辑/更新帖子时,将其从该表中的所有用户中删除。
简单明了:将其存储在数据库中。一个包含一user_id
列和post_id
/thread_id
列的表格,当有人阅读帖子或更新帖子/线程时,您会不断更新。是的,这是很多数据,但实际上并没有太多,它会给数据库带来任何问题。