문제

나는 이미 문서 데이터베이스, 특히 CouchDB의 단순성에 대해 흥분하고 있습니다. 그러나 이러한 데이터베이스가 다중 사용자 시스템에 실용적인 옵션인지 이해하는 데 어려움이 있습니다. 이러한 시스템은 문서 데이터베이스가 제공하지 않는 레코드간에 어떤 종류의 관계가 필요하기 때문입니다.

그러한 경우에 완전히 잘못된 도구입니까? 아니면 일부 태깅과 임시 견해가이를 달성하는 방법입니까? 그렇지 않으면...

업데이트:
지금까지 답을 이해합니다. 그러나 질문을 조금 다시 표현하겠습니다. 일반적으로 CouchDB에 적합한 반 구조화 된 데이터가 많이 있다고 가정 해 봅시다. "type = post"및 "Year = 2008"처럼 태그를 지정할 수 있습니다. 내 질문은이 유형의 태깅으로 얼마나 멀리 갈 수 있습니까? 10.000 이름의 배열 필드를 만들 수 있습니까? 아니면 더 좋은 방법이 있습니까? 이 문서 기반 의미에서 생각하는 방법을 이해하는 문제입니다.

도움이 되었습니까?

해결책

에 대한 토론이있었습니다 메일 링리스트 이 질문에 상당히 잘 맞는 잠시 후. 경험의 규칙은 데이터를 변경 대 증가 할 가능성이있는 문서에 데이터를 저장하는 것이 었습니다. 데이터가 성장할 가능성이 높으면 별도의 문서를 저장하고 싶을 것입니다.

따라서 다중 사용자 시스템의 경우 ACL 기반 권한을 구현하는 한 가지 방법은 적절한 권한이 표시된 상태에서 user_id를 doc_id에 매핑하는 '권한 문서'를 작성하는 것일 수 있습니다.

{
    _id: "permission_doc_1",
    type: "acl",
    user: "John",
    docid: "John's Account Info",
    read: true,
    write: true
}

그리고 당신의 견해는

function(doc)
{
    emit([doc.user, doc.docid], {"read": doc.read, "write": doc.write});
}

문서와 userID가 주어지면 권한을 확인하는 것은 다음과 같습니다.

http://localhost:5984/db/_view/permissions/all?key=["John", "John's Account Info"]

분명히, 이것은 권한이 시행되도록 클라이언트와 소파 사이에 중개자가 있어야합니다.

다른 팁

다중 사용자 시스템은 그렇지 않습니다 필요하다 관계형 데이터베이스이지만 RDBMS는 방대한 수의 (특히 CRUD) 응용 프로그램을위한 데이터 저장/검색을위한 필수 기술입니다.

문서/객체 -지향, 분산 데이터베이스 솔루션을 YORE의 "Lotus Notes/Domino"를 검색하려면 (이 영역에서는 어플리케이션이 문서에서 설계되는지에 대한 배경 지식이 좋은 성숙한 기술/제품입니다. -기반 패러다임. 고전적으로, 그것은 실제로 워크 플로 유형 응용 프로그램에 능숙합니다).

CouchDB에서 구체적으로 다음을 확인하십시오.

http://wiki.apache.org/couchdb/ (이것은 놀랍지 않아야합니다)

http://seanoc.wordpress.com/2007/10/12/more-on-couchdb/ (쉬운 읽기 설명 개요)

http://twit.tv/floss36 (팟 캐스트 인터뷰 CouchDB에 관한 모든 것)

@micahwittman이 말하는 것. 빠른 추가 : Temp보기는 생산 시스템에서 절대 사용해서는 안되며 개발을위한 것입니다. 영구적 인보기는 온도보기가 할 수있는 모든 일을 할 수 있으며 더 빠른 크기입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top