1

这适用于重新思考数据库。使用嵌入数组或哈希字段作为数组的模式会更好吗?保持我的意图简单.. 我正在尝试跟踪每日统计数据。但我在决定哪种模式结构更好之间犹豫不决。让我详细说明..

纯数组模式:

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
      }
    ]
  }
]

我能想到的一个是..使用后者更容易防止日期重复。还有其他优点吗?或者,是否有开发人员喜欢的通用约定?

4

1 回答 1

2

恕我直言,您的应用程序胜过任何 DBMS。与其关注您的数据库存储选择,不如关注您的应用程序需求、编程和性能。保留您的程序数据,然后仅在必要时使用模式更改迭代地对主要情况进行基准测试和优化。您的应用程序将回答您的存储问题。例如,一般来说:

(1) 如果您主要需要对日期进行有序访问,则使用数组 (2) 如果您需要对许多日期进行快速随机访问,则使用哈希

编程语言和 DBMS 语义都很重要。即使数据库已经对哈希进行了排序,您的语言也可能会丢失这一点,例如,Ruby 1.9 和更新版本中的哈希是有序的,但之前是无序的。

当然,您的架构选择非常重要。但是恕我直言,文档(非列对象数据 NoSQL)DBMS 的主要优势是能够匹配编程语言中的自然数据结构。所以我温和地鼓励你回到你的应用程序/程序作为问题和答案的焦点。

于 2013-09-30T19:11:56.160 回答