【发布时间】:2011-06-24 02:39:59
【问题描述】:
我想通过开发一个小的 PhotoAlbum 应用程序来尝试 CouchDb,在该应用程序中,不同的用户可以拥有许多包含许多照片的相册。如果我为每个用户创建一个包含一系列相册、包含带附件的照片的文档,我这样做是否正确?
{
user: "Dominik",
albums: [
{ name: "USA Trip", photos:
[
{ title: "Golden Gate Bridge", _attachments: [ the photo ] },
{ another photo }
]
},
{ ...} ]
}
或者还有其他好方法吗?
还是将用户、相册和照片分别存储在不同的文档中更好?这将需要在 mysql 中的外键?
{ type: "user", name: "Dominik", albums: [ "a1", "a2", "a3" ] }
{ type: "album", _id: "a1", title: "USA Trip", photos: [ "p1", "p2" ... ] }
{ type: "photo", _id: "p1", _attachments: {...}, title: "Golden Gate Bridge" }
...
还是反过来?:
{ type: "user", _id: "u1", name: "Dominik" }
{ type: "album", _id: "a1", title: "USA Trip", user: "u1" }
{ type: "photo", _id: "p1", _attachments: {...}, title: "Golden Gate Bridge", album: "a1" }
【问题讨论】:
标签: database-design nosql couchdb