2

我现在在一个论坛上工作,我几乎完成了,但现在我到了一个有点困难的地步。

您可能熟悉 phpBB 论坛。有一个很酷的功能可以将帖子标记为已读和未读。

我在这里找到了一个类似的线程,但我并没有真正得到解决方案。

如果我节省用户登录的时间并标记过去创建的所有帖子,它可能会起作用。但现在,下一步是什么?用户阅读了未读帖子,我想将其标记为“已读”,但其他帖子仍应标记为“未读”,直到他阅读它们。我必须存储这些数据,不是吗?

我实际上也一直在考虑将这些数据保存在 cookie 中。那个怎么样?

4

2 回答 2

1

你应该有一个多对多关系的表:

marked_as_read
--------+--------
user_id | post_id
--------+--------

删除任何超过(例如)30 天的帖子,以保持表格处于歇斯底里的大小。

在您的 PHP 代码中,将此表中不存在且小于 30 天的任何帖子标记未读。阅读答案后,将其放在这里。

编辑/更新帖子时,将其从该表中的所有用户中删除。

于 2012-04-28T07:54:42.253 回答
0

简单明了:将其存储在数据库中。一个包含一user_id列和post_id/thread_id列的表格,当有人阅读帖子或更新帖子/线程时,您会不断更新。是的,这是很多数据,但实际上并没有太多,它会给数据库带来任何问题。

于 2012-04-28T07:55:12.707 回答