设计数据结构

时间:2013-02-27 09:19:12

标签: json data-structures document-database

我正在写一个业余爱好的网络应用程序。它目前将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样式文档的数据结构的规范方法是什么?

1 个答案:

答案 0 :(得分:0)

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

{    “_id”:123,    “title”:“title1”,    “内容”:“内容......” }

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

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

我看到CouchDB对他们的观点做了很多。您会看到一个带有数组的结果,然后是该数组中的文档,每个文档中都有一个ID。 ID永远不会出现在文档的外部/旁边。

此外,我已经看到了很多像你提到的轻量级索引:

{    “ids”:[123,124,125,...] }

从我的经验来看也很常见。