다른 사용자가 많은 사진이 포함 된 많은 앨범을 가질 수있는 작은 PhotoAlbum 응용 프로그램을 개발하여 CouchDb를 사용해보고 싶습니다. 첨부 파일이있는 사진이 포함 된 앨범 배열을 포함하는 각 사용자에 대한 문서를 만들면 어떻게됩니까?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" }
데이터의 일부분을 별도로 저장하는 것을 잊어 버렸습니다 : 앨범에서 사진의 제목 중 하나를 변경하면 , 전체 문서가 업데이트 될 것이고 (그리고 ETag도), 그다지 좋지 않을 수 있습니다. –