首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >大文档与多文档

大文档与多文档
EN

Stack Overflow用户
提问于 2011-06-30 11:18:50
回答 1查看 2.5K关注 0票数 11

只是想要一个意见,或者至少有一个经验规则,在CouchDB的数据库结构中哪个更好。最好是在一个文档中拥有一个项目的所有相关数据,还是在许多文档中包含所有项目的一部分?

让我举个例子来说明我的意思。目前,我从我们的系统中记录了4个事件,每隔1分钟,让我们将它们称为event_1、event_2、event_3和even_4。数据被存储在这4个事件中的每一个,而不管它们的值是多少(即使一切正常,您都会得到一个值)。

选项1:组事件,并在文档中附加新的时间戳/值.

代码语言:javascript
运行
复制
{
    event_1: [ 
        { timestamp, value },
        { timestamp, value },
        { timestamp, value },
        ...etc
    ]
},
{
    event_2: [ 
        { timestamp, value },
        { timestamp, value },
        { timestamp, value },
        ...etc
    ]
},
{
    event_3: [ 
        { timestamp, value },
        { timestamp, value },
        { timestamp, value },
        ...etc
    ]
}
...etc

选项2:保存了大量的文档列表,其中包含了最新的值(这就是它们实际上是如何从系统中传递的)?

代码语言:javascript
运行
复制
{
    timestamp: {
        { event_1, value },
        { event_2, value },
        { event_3, value },
        { event_4, value }
    }
},
{
    timestamp: {
        { event_1, value },
        { event_2, value },
        { event_3, value },
        { event_4, value }
    }
},
{
    timestamp: {
        { event_1, value },
        { event_2, value },
        { event_3, value },
        { event_4, value }
    }
}
...etc

我目前正在使用第二个选项,但我只是好奇地看到人们对什么是最佳实践的看法……我开始认为选项1可能更好,因为我报告的方式,结果是按事件分组的(显示在每个事件的直线图中)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-30 11:36:00

我绝对更喜欢你的第二种选择。

由于CouchDB保存其文档的所有修订版,因此使用选项1将消耗大量内存。因此,对于每个新值,您将存储新值以及旧值的副本。使用选项2,您只存储新值而不触及旧值。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6533895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档