2012-09-05 4 views
0

안녕하세요 저는 mongodb에 초보자입니다. 자바를 사용하고 있습니다.Mongodb 스키마 설계 적합한 하나의 제안

필자의 관계형 테이블에는 system_properties 테이블 시스템이 2 개 있습니다.

이와 비슷한 것.

 Table    Fields          values 

     System   System_ID(PK), System_Info     100, cisc 
                    200, Gets 
     System_prop  System_ID(FK), Prop_key, Description  100, good, success 
                    100, better,progress 
                    200, worse,failed 

이 스키마를 만들려고합니다. 예 : 하나의 문서 삽입 용

이 디자인에 가장 적합한 스키마입니까?

조인 만 피하기 위해 문서를 임베드합니다.

"_id"= 100 (관계형 테이블의 기본 키)도 동일하게 참조되므로 system_id : 100 (관계형 테이블의 외래 키)이 필요한지 의심 스럽습니다.

답변

1

속성 개체의 Forefront 키는 문서에 포함시켜야 할 필요가 없습니다. 시스템 프로퍼티는 배열이나 심지어 객체 일뿐입니다.

{ 
    "good": "success", 
    "better": "progress" 
} 
1

두 개의 컬렉션을 사용하는 경우에도 스키마를 디자인하는 데는 여러 가지 방법이 있습니다. So :

앱에서 저장된 정보를 어떻게 사용합니까?

임베디드 등록 정보에서 제한없는 성장이 있습니까? => 나쁜 생각!

일부 속성은 100 개가 있고 일부는 1k입니까? => 컬렉션에있는 한 크기의 문서를 고수하려고합니다. (사용 버킷 팅하고 주 문서에 대한 favs/최고 5 원하는 경우)

더 많은 정보 : Talk about Schemadesign by Eliot Horowitz

0

스키마 디자인 데이터베이스 모델의 효율성에 매우 중요합니다. 관계형 데이터베이스 사고 방식에서 mongodb에 대한 스키마 설계에 대해 생각하지 않으려 고합니다. 귀하의 질문에 특히, 시스템 ID에 대한 외래 키가 필요하지 않습니다. 시스템 특성을 시스템 문서에 임베드하고 있기 때문입니다. 또한 시스템 속성 필드는 위에서 언급 한 Konstantin처럼 임베디드되지 않고 바로 시스템 문서로 바로 갈 수 있습니다.

+1

http://www.manning.com/banker/ (액션 MongoDB를) HTTP :/

다음은 MongoDB의에서 스키마 디자인을 할 때 수 있도록 고려가 중요한 것에 대해 생각을 시작하는 데 몇 가지 링크입니다 /www.10gen.com/presentations/mongosf2011/schemabasics http://www.10gen.com/presentations/mongosv-2011/schema-design-by-example http://www.10gen.com/presentations/mongosf2011/schemascale 다음은 스키마 디자인 샘플입니다. http://docs.mongodb.org/manual/use-cases/ – Louisa