Ashraf, the difference between POST and PUT is that the first method generates an UUID for you, the second, instead, does not. I suggest to use UUID and not a simple integer as id. You can ask CouchDB for a new UUID using
GET /_uuids?count=1 where count is the number of UUIDs you need. So, when you save the document that represent your Message, using POST or PUT as you prefer, you must include in the Message itself, both the senderId and the receiverId. I suggest to not include the name, because it might change. So if you have two students _id: '6789' type: 'student' name: Tom _id: '5443' type: 'student' name: Pablo and Tom sends a message to Pablo, you are going to save another document like this: type: 'message' title: 'The message title' body: 'The text message' senderId: '6789' receiverId: '5443' As you can see I don't include the student name in the message, you can get the student name using an additional query. But if you are sure the student name can't change (I imagine a typo, for example), you can add an additional field in your message document: type: 'message' title: 'The message title' body: 'The text message' senderId: '6789' senderName: 'Tom' receiverId: '5443' Using POST, CouchDB will fill the id for you. If you want use PUT, remember to ask an UUID using the method above, and assign it to _id. At this point you need a view to show all the messages by receiverId, so Pablo can see all his messages. You would create another view to show the sent messages, a view to index every document of type 'message', using as key the senderId. So you'll have the classic Inbox and Sent mailboxes. :-) -Filippo On Sep 26, 2013, at 8:45 PM, Ashraf Janan wrote: > Hello sir! > Thank you for answering and helping. > Please sir , > i will do the following: i thing in this case i uses Post method > > type:student > name: Tom > age:37 > _id:6789 > > ----- > type: message > sender: Pablo > title: "important information" > receiverid:6789 > text : "---------" > > in this case must i know the _id for a student to can send a message to him. > and in the Url to get all the messages for that person i will do the > following: > http:// url/name of database/ _design/name of view/_view/student?key="6789" > > is that correct ? please > > Best regards > Ashraf
