2009-12-10 2 views
3

CouchDB에 주문 문서를 저장하는 가장 좋은 방법은 무엇입니까?CouchDB/JSON에서 순서 지정된 하위 문서/값 저장?

내가 100 개의 기사가 있고 내가 좋아하는 순서대로 표시하도록 주문하거나 10,000 개의 이미지가 있고 날짜/카테고리/등이 아닌 특정 순서로 표시되기를 원한다고합니다. 부모 ("페이지"또는 "앨범"레벨) 또는 하위 (이미지/기사) 레벨에 최상으로 저장되어 있습니까?

는이 같은 더해야합니다


{ _id: myPage; articles: [myArticle14, myArticle5, myArticle2, myArticle20...]; } 
나이 : articles: [myArticle14, myArticle5, myArticle2, myArticle20...]; 테 실제 기술 문서의 _id 년대 있습니다

{ _id: myArticle14; position: 1; } 

....

각각의 장점/단점은 무엇이며 앱이 성장함에 따라 사용하기가 더 쉽습니다.

답변

1

사소한 데이터가 포함되어 있다고 가정하고 기사 당 하나의 문서를 사용하십시오. 큰 "컨테이너"문서는 좋은 아이디어가 아닙니다. 기사 데이터를 조금씩 업데이트 할 때마다 많은 수정 작업을 낭비하게됩니다. 또한 분쟁 해결에 어려움을 줄 수도 있습니다.

1

첫 번째 솔루션.

이점 : 한 위치에 두 개의 기사를 올릴 수 없습니다.

단점 : 기사를 순서대로 얻으려면 DB에서 모든 기사를 가져온 다음 필요로하는 기사 만 필터링하거나 페이지에 표시 할 기사만큼 많은 쿼리를 호출해야합니다.

두 번째 솔루션

장점 : 당신은 한 쿼리에서 한 페이지에 모든 문서를 얻을 수 있습니다. 그냥 키가 페이지위치 구성되어 뷰를 생성하고 필요한 기사 만 얻을 startKeyendkey 매개 변수를 사용합니다.

단점 : 단점 : 실수로 더 많은 위치에 같은 기사를 올릴 수 있습니다.

두 번째 해결 방법을 선택합니다.

관련 문제