couchDB - 正确的书签数据建模方法?

时间:2015-10-19 18:28:51

标签: json couchdb

我正在学习couchDB,并决定将书签管理器构建为练习项目。

我有点陷入RDBMS的思维方式,并且一直希望创建文档,就好像它们是表格一样。

所以我想知道这种方法是否正确"在使用像couchDB这样的文档数据库方面?

每个文档都包含用户数据,我将文档命名为user12345612345.json,然后像这样构建数据:

{
     "username":"todd",
     "password":"hSnxS987sDJf77600sHjdyDhskJShdskshjS75sa765sa"
     "bookmarks":
                  [
                       {
                       "url":"http://www.hello.com",
                       "title":"Hello website"
                       },
                       ... etc...
                  ]
}

因此,我将一个用户的所有书签存储在一个文档中。这样,我可以在登录时加载它,并管理数据,如果有更新,我会更新那个文档。

我正在与许多用户思考,如果我将每个书签存储为文档,那将是数以万亿的需要由用户编制索引的文档 - 不确定这是否是正确的方法。

我的下一步是添加文件夹和标签。我想我只是将这些数组添加到这个用户文档中。

右?

1 个答案:

答案 0 :(得分:1)

你正在做正确的事。从结构化转向“结构较少”时,您需要采取的最大心理步骤是将对象属性保持在一起。因此,如果用户是唯一的并且书签与该用户相关联,请将用户和书签保持在一起,就像您现在所做的那样。 对您的用户和标签也是如此。想想你在应用程序中做了什么。可能你想在一次调用中检索一个带有书签,标签,文件夹等的用户,而不是经过几个表,连接等。这就是NoSQL的美妙之处。 ; - )