2010-11-29 6 views
2

나는 문서에 투표를 저장하는 좋은 예를 찾고있다. 예를 들어 게시물이있는 문서가 있고 사용자가 투표 할 수있는 경우. 내가 예를 들어, 문서에 필드에 투표를 저장하는 경우 :CouchDB 문서에 투표를 저장하는 방법은 무엇입니까?

투표를 : 저자는 포스트 누군가가 투표를이 시간 동안을 편집 할 경우 12345

은 무엇 일 것인가? 누군가가 투표하고 문서가 새로운 개정판이 될 것이기 때문에 저자는 저장할 수 없을 것입니다.

다른 옵션은 개별적으로 투표를 저장하거나, 각 투표를 문서로 만들거나, 모든 게시물에 대해 투표가있는 문서를 만드는 것입니다.

다른 문서에 모든 투표를 저장하기로 결정하면이 데이터를 집계하는 것이 얼마나 어려울까요? 또는 문서를 보여줄 때마다 계산해야합니까?

솔루션은 무엇입니까?

안부

답변

1

이것은 충돌합니다. CouchDB Guide에는 충돌을 다루는 장이 있습니다. http://guide.couchdb.org/draft/conflicts.html

미들웨어 (예 : PHP)를 사용하는 경우 충돌을 인식하고 처리 할 수 ​​있습니다. (위키 코드 예제 : http://wiki.apache.org/couchdb/Replication_and_conflicts)

순수한 CouchApp를 제공하려면 업데이트 처리기를 사용하여 일반적인 충돌 사례를 자동으로 관리 할 수 ​​있어야합니다. http://wiki.apache.org/couchdb/Document_Update_Handlers

제대로 작동한다면 문서에 투표를 저장하는 것이 좋습니다. 그러나 나는이 접근법들 중 어느 것도 나 자신을 위해 아직 시도하지 않았다. 솔루션을 공유하면 기쁠 것입니다.

0

투표를하거나 블로그 게시물에 의견을 추가하는 등 많은 사용자가 문서를 업데이트 할 때 충돌을 피하는 방법에 대해이 기사가 매우 유용하다는 것을 알았습니다.

http://www.cmlenz.net/archives/2007/10/couchdb-joins

세 번째이자 가장 (?) 솔루션이 블로그 게시물에 대한 링크와 별도의 문서로 각 주석 가게했다. 복잡한 키를 사용하면 게시물에 속한 모든 주석을 쿼리 할 수있을뿐만 아니라 사용자가 작성한 모든 주석을 시간순으로 정렬하여 쿼리 할 수 ​​있습니다.

관련 문제