Django / SQL:跟踪谁在论坛中阅读了什么

时间:2009-11-08 16:24:29

标签: python sql django database-design database

我正在研究django中一个不太重要的项目,其中包括一个论坛系统。

我的大部分系统处于或多或少的运行状态,但是当有新帖时,我仍然缺少为用户标记未读线程的功能。

事情是我无法想到正确存储该信息的方法。我的第一个想法是创建另一个模型,该模型将存储每个用户都有变化的线程列表。有一个ForeignKey(User)和一个ForeignKey(Thread)的东西,只要在每次发布帖子或将帖子添加到帖子中时都不断添加新条目。

然而,我不确定在一段时间之后可能会说几百个线程,也许是50-200个用户。那么为未登录的用户为每个新帖子添加200行?听起来很多。

其他论坛系统如何做呢?我如何实现一个系统来在Django中完成这些工作。

谢谢!

2 个答案:

答案 0 :(得分:2)

你最好存储“读”位,而不是“未读”位。而且你可以将它们存储为不是关系数据,而是存储在一个巨大的点块中。然后,只有在用户阅读帖子时才添加新帖子时,您根本不需要修改读取数据。

答案 1 :(得分:1)

您也可以简单地存储用户上次阅读特定论坛的时间。自该日期以来已更新的任何帖子都是新的。您只需为每个用户存储一条额外的信息,而不是每个用户每个帖子存储一条信息。