2015-01-30 5 views
0

저는 CouchDB와 이러한 유형의 데이터베이스가 처음이므로 질문이 있습니다. 모든 사용자의 활동을 어떻게 저장해야합니까? 나는 그것을 첨부 파일로 저장하고, 사용자 db의 사용자 ID를 사용하여 다른 db에 저장하는 방법에 대해 생각했습니다. 이것들은 어떻게 든 작동 할 것이지만 효율적이지는 않습니다. 추적 응용 프로그램을 개발하려고하므로 데이터가 매우 빠르게 증가합니다. 나는 쉽게 관리하고 추적 할 수있는 데이터베이스를 개발해야한다. CouchDB에 사용자 활동을 저장하기위한 제안 사항은 무엇입니까?CouchDB에서 사용자 활동 저장

답변

0

주 데이터베이스와 별도의 데이터베이스를 만든 다음 각 데이터베이스를 단일 문서로 저장하는 것이 좋습니다. 그런 다음 필요에 따라 조회/축소보기를 작성할 수 있습니다.

기본 데이터베이스가 "foo"라고하는 경우 "foo-activity"라는 다른 데이터베이스를 생성하십시오. 다음과 같이 "foo는 활동"으로 활동 문서를 추가 :

function(doc){ 
    if doc.activity and doc.user_id 
    emit([doc.timestamp,doc.user_id], doc.activity) 
} 

그런 다음 당신이 timerange를 기반으로 사용자를 검색 할 수 있습니다 : 같은
{ 
    "user_id": 4242, 
    "activity": "clicking", 
    "url": "http://foo.bar", 
    "timestamp": 121212213 
} 

는 그런 다음 activity_by_time_and_user보기 보일 수 있습니다.

+0

이것은 현재 현재 사용중인 것으로 데이터베이스가 커지면 검색에 대한 두 번째 생각이있었습니다. 하지만 분명히 나는 ​​timerange 기반 검색을 고려하지 않았다. 감사합니다! – Kaan