所以我一直在玩我正在构建的论坛,并且已经停留了一段时间,如何跟踪未读的帖子和通知而不在数据库中存储大量数据。在看了一些解决方案之后,我相信我想出了一个可以满足我需求的解决方案,但需要一套新的眼睛来指出我没想到的。这是我的想法的架构。
1)当用户登录时,请检查当前time()
和上次登录time()
之间的帖子。
2)如果找到帖子,添加到数组,然后serialize()
数组并保存到数据库中的成员行。
3)如果不是空的话,将数组输出到用户。
这样它只会检查未读帖子并存储在实际登录论坛的用户身上,而不是占用不必要的空间来保存非活动用户的未读ID。我仍然想知道这不是一个好主意,因为如果用户没有阅读帖子,那么数据库中的序列化可能会变得太大而无法管理。
有没有人在我的思维方式中看到问题?如果是这样,请告诉我。
答案 0 :(得分:4)
在实际出现问题之前不要担心空间。存储帖子ID(整数)和用户ID(另一个整数)的表将很小。即使您有数千个帖子和数千个用户,您也可以放心地假设:
另一件事:如果你真的想要减少空间,不要存储未读的帖子。仅存储每个帖子中的最后一篇阅读帖子。这是每个用户每个线程一条记录,并且只假设用户曾经打开过线程。
答案 1 :(得分:1)
让每个用户的论坛视图都带有一个标志来指示他们是否阅读每个人的问题是什么?这种机制显然有助于扩展到upvoting,收藏等等。