计算喜欢人数的哪种情况更好?

时间:2019-02-01 08:48:14

标签: firebase google-cloud-firestore

考虑一下,我有一个博客。我正在为每个帖子实施赞。用户在这里无法删除他们的喜欢。每次按赞按钮都会累加起来。我想计算喜欢的次数并显示出来。

我的数据库结构如下:

它具有一个 帖子 集合以及关联的 喜欢 子集合


情况1:

在每次点击 like (在子集合中创建一个新文档)时,它都会递增并更新 帖子 < / strong>集合。这样我就可以轻松访问该属性以显示喜欢的次数,也就是: 喜欢 子集合文档的数量。

据我所知,这里的优势是:

它减少了子集合文档的 Reads 数量,因此随着时间的推移可能会降低成本。

我的缺点:

这确实增加了子收藏文档的数量,但随着时间的推移,这些文档的成本也会增加。


情况2:

在每次按 likes 的命中时,在名为 Post's 子集合中增加 like 属性喜欢 。 每个用户的喜欢只有一个文档,但是这里的属性会增加。

据我所知,这里的优势是:

它创建的文档数量少得多,因此随着时间的推移它可以减少更多的费用和存储空间。

我的缺点:

要计算总体喜欢人数会有些困难。必须阅读每个文档并做一些数学运算。


情况3:

这不过是 案例1 的相同逻辑。但是计数和增量将在 Cloud Function 中进行。

据我所知,这里的优势是:

也许这种逻辑比 案例1 减少的更多,因为该逻辑发生在 Cloud Functions 中(我不确定的

我的缺点:

不知道!


如果提供Firebase,我不知道计数文档的任何更好的功能。我想知道哪种情况在成本和效率上更好,以及在开发过程中我们需要考虑什么。

如果有的话,请给我分析文件计数和更好的方法吗?如果我有什么好主意,那么在正确的情况下我还必须考虑什么?

谢谢!

0 个答案:

没有答案