2010-06-27 10 views
8

mongo db를 사용하여 블로그 게시물 저장을 구현하려고합니다.오브젝트 간의 몽고 DB 관계

나는 두 개의 도메인 엔티티있어 :

"블로그 게시물"및 "저자"포스트 엔티티 블로그로

현재 내가 추가 한 AuthorId 속성을. 객체 간의 관계를 저장하는 올바른 방법입니까?

답변

9

현재 블로그 게시물 엔티티에 AuthorId 속성을 추가했습니다. 객체 간의 관계를 저장하는 올바른 방법입니까?

아니요. 블로그 문서에서 필요한 모든 것을 형식으로 역 정규화 된 방식 (예 : 블로그 게시물, 댓글, 태그 등)으로 저장한다고 가정합니다. 따라서 저자 이름을 표시하려면 블로그 문서에 저자 이름을 추가해야합니다. 이렇게하면 단일 쿼리로 전체 페이지의 데이터를 가져올 수 있습니다. 이는 문서 지향 데이터베이스의 일부 포인트입니다.

+6

이럴 볼 mongoddb에 bests입니다! – Blankman

+2

@Blankman : True. 여전히, 나는 문서 지향 db의 철학은 하나의 쿼리에서 전체 문서를 가져 오는 것이라고 생각한다.그런데 [사용자 이름 바꾸기]/[블로그 게시물 게재 중]의 비율은 어떻게됩니까? 나는 그것이 ** 매우 낮음이라고 생각한다. –

+0

@Blankman, MongoDB가 update-in-place를 가지고 있기 때문에 비동기로 할 수 있고 업데이트가 매우 빠릅니다. authorid에서 블로그 게시물의 색인을 생성 할 수도 있습니다. – TTT

19

는이 게시물이 당신 http://www.mongodb.org/display/DOCS/Schema+Design

사용 사례

고객/주문/주문 라인 항목

주문이 수집해야 바로이 될 것이라 생각합니다. 고객 컬렉션. line-items는 order 객체에 포함 된 line-items의 배열이어야합니다.

블로깅 시스템.

게시물은 컬렉션이어야합니다. 게시물 작성자는 별도의 컬렉션이 될 수도 있고 단순히 이메일 주소 인 경우 게시물 내의 필드 일 수도 있습니다. 댓글은 성능을 위해 게시물 내에 포함 된 개체 여야합니다.

스키마 디자인 기본

카일 은행, 10gen

http://www.10gen.com/presentation/mongosf2011/schemabasics

인덱싱 & 쿼리 최적화 앨빈 리차드, 수석 디렉터리 엑터 기업의 엔지니어링

http://www.10gen.com/presentation/mongosf-2011/mongodb-indexing-query-optimization

**이이 비디오는 지금까지 사용자가 비록 매우 비싼 전화를하게 이름을 변경 *

+0

비디오 링크에 감사드립니다! 관계형 데이터베이스에서 noSQL으로 전환하는 데 정말 도움이됩니다. –