我正在构建一个允许用户发布内容的应用程序。然后可以对此内容发表评论。
假设如下:
- 内容文档的大小在 200KB 到 3MB 之间,具体取决于 关于文字内容。
- 每条评论的大小在 10KB 到 100KB 之间。
- 可以有 1 条评论,也可以有 1000 条评论。没有限制。
我的问题是,在存储内容时,各个评论应该存储在同一个文档中还是应该被分解?
最佳答案
我当然会将帖子内容和评论分开,假设应用程序的某些部分将在没有评论的情况下预览/使用帖子。
对于评论本身(假设它们是分开的),我想说许多较小的评论通常会更好,如果仅考虑到存在具有数百或数千条评论的帖子,您就不会想要立即使用它们,因此只获取需要(显示)的文档是有意义的,而不是加载 MB 的评论以仅使用当时获取的 <100KB。
您可能不需要单独存储注释,但如果您的 key 符合逻辑并遵循可预测的方案,我认为没有理由不单独存储它们。但是,如果您想要进行一些分组,我可能会避免对每个文档进行比您通常使用的更多评论的分组。
如果您使用 View ,将更多评论分组到单个文档中也许可能会有一些好处,但即便如此,这也取决于您的用例。
Couchbase 单独存储大量文档不会出现软件瓶颈,唯一的限制是非常相似的硬件限制;您是否有大量小文档或较少的大文档。
关于Couchbase - 大型文档还是大量较小的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28454281/