【问题标题】:Designing data structure设计数据结构
【发布时间】:2013-02-13 00:50:10
【问题描述】:

我正在编写一个爱好 Web 应用程序。它目前将 JSON 对象发送到客户端,然后客户端将它们创建为博客文章。目前 JSON 对象如下所示:

{"id1": {"title": "title1", "content": "content1", ...}, "id2": {...}, ...}

有时顺序开始很重要。例如,如果我想为博客文章创建随机显示顺序。目前我使用一个单独的数组post_ids,它看起来像["id1", "id2", ...],它的值被用作上面JSON对象的键。

显然,我的对象可能如下所示:

[{"id": "id1", "title": "title1", "content": "content1"}, ...]

但是我将失去按 ID 索引的能力,并且每次都需要遍历我的数据。

有时我也有一个对象,我想获取它的 ID。我可以将 ID 包含到初始对象中:

{"id1": {"id": "id1", "title": "title1", ...}, ...}

设计包含这些 CouchDB/MongoDB 样式文档的数据结构的规范方法是什么?

【问题讨论】:

    标签: json data-structures document-database


    【解决方案1】:

    我不相信设计这些文档的规范方法,但我知道 CouchDB 和 MongoDB 都使用相同的方法:

    { “_id”:123, “标题”:“标题1”, “内容”:“内容……” }

    实体的 id 在文档内部。要返回文档列表,您只需返回一个数组:

    { “帖子”:[{“_id”:123,...},{“_id”:124,...}] }

    我看到 CouchDB 经常根据他们的观点来做这件事。您会看到一个包含数组的结果,然后是该数组中的文档,每个文档中都有一个 ID。 id 永远不会出现在文档之外/旁边。

    我也见过很多像你提到的轻量级索引:

    { “ID”:[123、124、125、...] }

    根据我的经验,这也很常见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      相关资源
      最近更新 更多