我有一个类似Instagram的项目。用户可以发送消息,分享故事。为每个用户计算和导出未读消息和新共享帖子的最佳实践是什么?我对此有一些想法:
1-将unread_count
和unread_messages
和new_shared_related_post
字段添加到用户模型,并且每次发生新事件时,将unread_count
添加+1,当用户收到新消息或收到新帖子时,unread_count
设置为0或减少适当的数字。在此方法中,我们还需要向用户模型添加last_seen_unread_msg
字段,以便我们可以在需要时导出新的帖子/新消息。(我只是简单地解释了这一点,主要是指存储新消息和新的相关共享发布到用户模型的字段。此字段可以是models.JSONField
或可以通过models.ManyToManyField
来建立联系)
2-添加与每个用户相关的新模型以存储新消息和新的相关共享帖子,以便我们可以轻松拥有所需的一切,但数据库将更大。
3-将新消息或新的相关共享故事存储到Redis以快速缓存它们!每次发生新消息或新帖子时,我们都可以将它们添加到与用户相关的Redis中。计划2,但改为DB,我们将使用Redis)
我不是专业人士,因此,如果您有任何新想法或改进上述想法,请告诉我。
致谢