我正在学习couchDB,并决定将书签管理器构建为练习项目。
我有点陷入RDBMS的思维方式,并且一直希望创建文档,就好像它们是表格一样。
所以我想知道这种方法是否正确"在使用像couchDB这样的文档数据库方面?
每个文档都包含用户数据,我将文档命名为user12345612345.json
,然后像这样构建数据:
{
"username":"todd",
"password":"hSnxS987sDJf77600sHjdyDhskJShdskshjS75sa765sa"
"bookmarks":
[
{
"url":"http://www.hello.com",
"title":"Hello website"
},
... etc...
]
}
因此,我将一个用户的所有书签存储在一个文档中。这样,我可以在登录时加载它,并管理数据,如果有更新,我会更新那个文档。
我正在与许多用户思考,如果我将每个书签存储为文档,那将是数以万亿的需要由用户编制索引的文档 - 不确定这是否是正确的方法。
我的下一步是添加文件夹和标签。我想我只是将这些数组添加到这个用户文档中。
右?
答案 0 :(得分:1)
你正在做正确的事。从结构化转向“结构较少”时,您需要采取的最大心理步骤是将对象属性保持在一起。因此,如果用户是唯一的并且书签与该用户相关联,请将用户和书签保持在一起,就像您现在所做的那样。 对您的用户和标签也是如此。想想你在应用程序中做了什么。可能你想在一次调用中检索一个带有书签,标签,文件夹等的用户,而不是经过几个表,连接等。这就是NoSQL的美妙之处。 ; - )