【发布时间】:2023-03-19 00:53:01
【问题描述】:
我正在 firebase 中构建一个简单的应用程序,用户可以在其中互相加为好友并为彼此的帖子点赞。但是,您只能看到共同好友的点赞。
即:如果 bob 喜欢 joe 的帖子。
如果我是 joe 和 bob 的朋友,我可以看到 bob 的点赞。
如果我只是和乔的朋友,我看不到鲍勃的喜欢。
我应该如何构建我的数据?我计划为每个用户创建 PostFeed:
— PostFeed (collection)
— Uid (document)
— Posts (collection)
— Likes (collection)
如果我写了一篇新帖子,它会被添加到我所有朋友的帖子提要中。如果我有 1000 个朋友,该帖子将被添加到 1000 个供稿中。
我将每个帖子的赞存储在 PostFeed 中的每个帖子中。所以我们可以在没有额外查询的情况下获得喜欢。因此,如果 bob 喜欢 joes 的帖子,则喜欢的内容将添加到 joe 朋友的帖子供稿中的每个帖子中。
即:如果 joe 喜欢 bob 的帖子并且 bob 有 500 个朋友。鲍勃的帖子在 500 个朋友的 PostFeed。乔的赞应该添加到所有 500 个帖子中 每个 PostFeed。
但只有当我们是共同的朋友时,才会看到喜欢。
即:如果 bob 喜欢 joe 的帖子,它只会被添加到用户提要中,如果 我们是共同的朋友。因此,请查看 joe 的帖子,其中 bob 是 共同的朋友,并在这些帖子中点赞。
这是可扩展的吗?尽管大多数写入发生在 firebase 函数中,但写入操作似乎非常昂贵。特别是如果用户喜欢,则不喜欢,然后再次喜欢。或者,如果我添加了一位新朋友,我需要添加该新朋友在共同朋友的帖子上所做的所有点赞。
有没有更好的方法来处理这个问题?
【问题讨论】:
标签: mongodb firebase nosql amazon-dynamodb