Couchbase-大型文档还是大量较小的文档?

Couchbase-大型文档还是大量较小的文档?,couchbase,Couchbase,我正在构建一个允许用户发布内容的应用程序。然后可以对该内容进行评论 假设如下: 内容的文档大小介于200KB和3MB之间,具体取决于 关于文本内容 每条注释的大小在10KB到100KB之间 可能有1条评论,或者1000条。没有限制 我的问题是,在存储内容时,单个评论应该存储在同一个文档中还是应该被分解?我当然会将帖子内容和评论分开,假设应用程序的某些部分可以在没有评论的情况下预览/使用帖子 对于评论本身(假设它们是分开的),我想说很多较小的评论通常会更好,如果只是考虑到存在一篇包含100或100

我正在构建一个允许用户发布内容的应用程序。然后可以对该内容进行评论

假设如下:

  • 内容的文档大小介于200KB和3MB之间,具体取决于 关于文本内容
  • 每条注释的大小在10KB到100KB之间
  • 可能有1条评论,或者1000条。没有限制

  • 我的问题是,在存储内容时,单个评论应该存储在同一个文档中还是应该被分解?

    我当然会将帖子内容和评论分开,假设应用程序的某些部分可以在没有评论的情况下预览/使用帖子


    对于评论本身(假设它们是分开的),我想说很多较小的评论通常会更好,如果只是考虑到存在一篇包含100或1000条评论的帖子,你不会想立即全部使用它们,因此只获取需要的文档(要显示的文档)是有意义的,我不想只使用MBs的评论而是为每个答案提供一个文档,因为Couchbase在组织哪些内容可以保存在内存中,哪些内容不可以保存在内存中方面非常出色。通常,当注释超过25条时,应用程序不会显示所有注释(我认为这是大多数应用程序使用的一个数字,以25条为一组显示注释,在顶部显示较新的注释,例如)。因此,如果最新的25条注释保留在内存中,而较旧的注释随后会自动写入磁盘,那么您可以在如何使用内存(对于Couchbase来说总是至关重要)和应用程序的访问时间之间保持一个理想的水平。完美的平衡我想说,我在我的应用程序中做了一个类似的决定,它工作得非常完美。

    我应该澄清“如果你的密钥是合乎逻辑的,并且遵循一个可预测的方案”,我开始提出一个观点,但没有付诸实践。我的意思是,只要它们易于引用(例如,post键为“abc”make comment键为“abc\u nnn”或类似),应用程序通常可以在不需要视图的情况下获取它们(例如,将“abc\u 001”加载到“abc\u 010”并根据需要进行迭代)。此外,您可能需要考虑在父文档中添加子注释,然后在一个文档中(或至少我会)将顶层注释分组。