设计数据结构

3

我是一名爱好者,正在编写一个网络应用程序。目前,它会将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

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

{ "_id" : 123, "title" : "标题1", "content" : "内容 ..." }

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

{ "posts" : [ { "_id" : 123, ... }, { "_id" : 124, ... } ] }

我经常看到CouchDB在它们的视图中这样做。您会看到一个带有数组的结果,然后是该数组中的文档,每个文档中都有一个ID。 ID从未出现在文档之外/旁边。

此外,我还见过很多像您提到的轻量级索引:

{ "ids" : [ 123, 124, 125, ... ] }

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接