2010-04-23 12 views
2

J'ai vraiment essayé, essayé si dur, mais je ne peux pas comprendre CouchDB :(Je dois enregistrer le contact de plusieurs personnes, dois-je mettre tous les contacts dans un seul document?Meilleur format de document pour addressbook dans 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", ... 
] 
} 

ou dans différents documents?

"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" 
} 

... 

Je confus, quelqu'un peut me aider?

Merci.

Répondre

3

Je suppose que vous stockez ces contacts pour former une sorte d'application de style carnet d'adresses. En partant de cette hypothèse, je dirais que votre deuxième exemple est exactement ce que vous voulez faire. La façon dont je le regarde, chaque "contact" est un document unique. Tous les attributs de ce contact appartiennent au document. Pour aller un peu plus loin, vous pourriez décider de stocker plusieurs numéros par personne, peut-être de différents types. J'intégrer ces tous à l'intérieur du document pour le contact particulier:

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

je trouve une bonne façon d'aborder la conception d'un modèle pour une utilisation dans une base de données de documents est de considérer quels éléments vous souhaitez utiliser de façon indépendante. Pour ceux qui ont un sens par eux-mêmes, ils devraient probablement aller dans leur propre document. Pour ceux qui n'ont de sens que dans le contexte de leur objet "container", intégrez-les dans celui-ci.

J'espère que cela vous aide.

+0

Merci beaucoup =) – Caio