【发布时间】:2013-10-06 09:57:32
【问题描述】:
这适用于重新思考数据库。使用嵌入数组或哈希字段作为数组的模式会更好吗?保持我的意图简单.. 我正在尝试跟踪每日统计数据。但我在决定哪种模式结构更好之间犹豫不决。让我详细说明..
纯数组架构:
schema = [
{
title: 'foobar',
dates: [
{
date: 20130926,
views_count: 10,
click_count: 10
},
{
date: 20130927,
views_count: 20,
click_count: 20
},
{
date: 20130928,
views_count: 30,
click_count: 30
}
]
}
]
哈希字段数组架构:
schema = [
{
title: 'foobar',
dates: [
'20130926' => {
views_count: 10,
click_count: 10
},
'20130927' => {
views_count: 20,
click_count: 20
},
'20130928' => {
views_count: 30,
click_count: 30
}
]
}
]
我能想到的一个是.. 使用后者更容易防止日期重复。还有其他优点吗?或者,是否有开发人员更喜欢的通用约定?
【问题讨论】:
-
如果你选择了一个数据库并问了这个问题,它可能是可以回答的。但是,通过标记很多,很难说优势是什么,因为每个平台都不同,并且可能以多种方式处理您的模式。例如,MongoDB 的答案与 CouchDB 的答案完全不同。我已将关闭标记为“过于宽泛”。
-
@WiredPrairie 我已经删除了 mongo DB。这个问题仅适用于重新思考 DB。请重新提出问题。谢谢
-
感谢您做出更改。
-
这两种方法本质上都不比另一种更好。它们在性能方面非常相似,至少在元素数量很少的情况下。问题实际上归结为您计划进行什么样的操作。按日期访问元素以增加
click_count字段是否会成为常见操作?如果是这样,我认为您最好使用哈希字段。 -
@JoeDoliner 是的,这里的目的是选择 2 个或更多日期并将它们的 click_count 值组合在一起以获得总数。感谢您的建议
标签: nosql database-schema rethinkdb document-based-database