【问题标题】:Best document format for addressbook in CouchDBCouchDB 中通讯录的最佳文档格式
【发布时间】:2010-04-23 15:44:06
【问题描述】:

我真的很努力,很努力,但我无法理解couchdb :(我必须记录几个人的联系方式,我应该将每个联系方式放在一个文档中吗?

"1th documet"
{
 "names" : [
  Jake", "Lock"
 ]

 "numbers" : [
  "Jake's number", "Lock's number"
 ]
}

Future records:

"1th documet"
{
 "names" : [
  Jake", "Lock", "Kate", "Jin", ...
 ]

 "numbers" : [
  "Jake's number", "Lock's number", "Kate's number", "Jin's number", ...
 ]
}

或者在不同的文档中?

"1th document"
{
 "name" : "Jake"

 "number" : "Jake's number"
}

"2th document"
{
 "name" : "Lock"

 "number" : "Lock's number"
}

Future records:

"1th document"
{
 "name" : "Jake"

 "number" : "Jake's number"
}

"2th document"
{
 "name" : "Lock"

 "number" : "Lock's number"
}

"3th document"
{
 "name" : "Kate"

 "number" : "Kate's number"
}

"4th document"
{
 "name" : "Jin"

 "number" : "Jin's number"
}

...

我很困惑,有人可以帮助我吗?

谢谢。

【问题讨论】:

    标签: document couchdb nosql


    【解决方案1】:

    我假设您正在存储这些联系人以形成某种地址簿样式的应用程序。按照这个假设,我想说你的第二个例子正是你想要做的。在我看来,每个“联系人”都是一个文档。此联系人的所有属性都属于文档。

    {
        name: "John Smith",
        number: "+44 1234 567890"
    }
    

    为了更进一步,将来您可能会决定要为每个人存储多个数字,可能是不同类型的数字。我会将这些都嵌入到特定联系人的文档中:

    {
        name: "John Smith",
        numbers: [
            { number: "+44 1234 567890", type: "home" },
            { number: "+44 7798 987654", type: "mobile" },
            { number: "+44 1234 987123", type: "work" }
        ]
    }
    

    我发现设计用于文档数据库的模型的一种好方法是考虑您希望独立使用哪些项目。对于那些对自己有意义的人,他们可能应该进入自己的文档。对于那些仅在其“容器”对象的上下文中查看时才有意义的内容,请将它们嵌入其中。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多