将帖子标记为关于appengine的阅读

时间:2014-02-26 22:11:58

标签: google-app-engine go google-cloud-datastore

我目前正在设计类似于twitter / jaiku / reddit的应用程序。基本上有小帖子有upvotes和downvotes,他们按分数和时间排序,如reddit。

我已经完成了所有这些工作,但现在我们的要求发生了一些变化,我们需要用户能够将帖子标记为“已读”。这会使帖子不再显示在该用户的Feed中。我可以为(User,Post)的每个元组使用Read实体对此进行建模,但这需要大量工作来查找该表中不存在的帖子。或者我可以反转那个关系,这样每个未读帖子都有一个实体,并且更容易找到表格中存在哪些帖子......但是我需要在这个表格中创建一个条目每次发布帖子时每个用户。这不会很好地扩展。

我的问题是:我如何在appengine的数据存储中模拟这种负面信息?如果重要的话,我正在使用go运行时,但任何运行时的答案都可以。

1 个答案:

答案 0 :(得分:0)

这将是一个多对多的关系。 This article描述了如何建模不同类型的关系,包括多对多关系。唯一的问题是,我不确定天气应该在帖子上存储用户的阅读帖子列表,或者已经阅读过帖子的用户列表,因为在不同的情况下,poth列表可能会变大。如果帖子相对私密,并且很多人都看不到,您可以在帖子模型上存储用户键列表。但是,如果成千上万的人可以看到一个帖子,那么在用户上存储帖子列表可能会更好,因为可能没有很多用户拥有数千个阅读帖子。另一个选择可能是丢弃旧帖子,或者只是放弃他们的阅读状态。