MongoDB에 대한 문서 디자인, 특히 참조, 포함 및 링크와 관련하여 약간의 내용을 읽었습니다.MongoDB에 대한 올바른 문서 디자인
내가 저장하고 싶은 문서 종류에 가장 적합한 레이아웃이 무엇인지 확실하지 않습니다.
동적 양식 작성 응용 프로그램의 한 유형이라고 상상해보십시오. 각 양식은 정적 속성 집합 (이름, 설명 등), 동적으로 생성 된 필드 집합 (name = text, age = number 등) 및 제출 된 결과 집합을 갖습니다. 이 같은
뭔가 :
$obj = array(
'name' => 'Test',
'description' => 'Hello',
'live' => false,
'meta' => array (
'name' => 'text',
'age' => 'number',
'sex' => 'boolean',
),
'records' => array(
array('name' => 'Test', 'age' => 20, 'sex' => true),
...
...
)
);
내 혼란이 주로 내가 컬렉션에서 레코드를 삽입할지 여부에서 오는, 또는 I는 각 양식에 대한 개별 컬렉션을 작성해야합니다. 나의 직관은 후자를하는 것이지만, 읽었던 MongoDB 서적에는 삽입 데이터가 괜찮다고 나와 있습니다.
양식에 대량으로 제출 된 데이터가있을 것으로 예상되는 경우 누군가를 도울 수 있습니까?
감사합니다.
편집 : 나는 또한 도움이 될 this question을 발견했다.
이 질문은 프로그래머에 속합니다 .stackexchange.com –
그건 대답은 "그것은 다릅니다"고 말했다. 특정 양식의 컨텍스트에서 레코드에 액세스하거나 쿼리해야하는 경우이를 포함시킵니다. 독립적으로 액세스/쿼리해야하는 경우 별도의 컬렉션을 만들 수 있습니다. –
@BenLee : 특정 필드 유형에 대해 지형 공간 인덱싱이 필요한 경우 별도 컬렉션 방법이 더 유리합니까? 양식의 컨텍스트 외부에서 양식 제출이 요구되는 경우를 생각할 수는 없지만 단일 모음의 여러 양식에 대한 레코드를 혼합하면 디스크에 비 연속적인 데이터가 생성 될 것이라는 점에서 성능 측면에서 정확할 것입니다. 점점 더 많은 레코드가 제출 될 때 쿼리 성능이 저하됩니까? – Leigh