2013-04-11 3 views
0

저는 비 관계형 데이터베이스에 익숙하지 않아서 어떻게 데이터를 모델링 할 수 있을지 궁금합니다. 내 프로젝트는 프로젝트와 작업이 포함 된 간단한 할 일 목록 앱입니다.MongoDB에서 데이터를 모델링하는 방법은 무엇입니까?

projects: [{ 
    _id: 23423423423, 
    name: projectName1, 
    tasks: [{ 
       _id: 3423423423423324, 
       title: "do something", 
       isCompleted: "false" 
      }, 
      { 
       _id: 23223423423324, 
       title: "do something else now", 
       isCompleted: "false" 
      }, 
      { 
       _id: 232234233423423, 
       title: "i have completed this", 
       isCompleted: "true" 
      }] 
    }, 
    { 
    _id: 2342123123, 
    name: projectName2, 
    tasks: [{ 
       _id: 3423423423422314, 
       title: "build this", 
       isCompleted: "false" 
      }, 
      { 
       _id: 2322342342234234, 
       title: "build something else now", 
       isCompleted: "false" 
      }, 
      { 
       _id: 2322342323423423, 
       title: "i have completed building this", 
       isCompleted: "true" 
      }] 
    } 

답변

2

projects을 가정하는 것은 실제로 컬렉션 이름은 다음이 좋아 보인다 더있을 다음하지 않을 경우 :이 올바른지 또는 내가 더 잘 할 수 있습니다 무엇을하면 나는 현재 그것을 할 방법은 아래를 참조하고 알려 주시기 바랍니다 공연자는 프로젝트 당 문서를 만들고 어떤 종류의 user_id을 사용하여 서로 링크하도록합니다.

여기에 마음에두고 싶은 한 가지 점은 일정 기간 동안 얼마나 많은 새로운 작업이나 작업을 업데이트했는지입니다. 그 이유 중 하나는 하위 문서 tasks이 일정한 조각화 문제 (http://www.10gen.com/presentations/storage-engine-internals 자세한 내용을 설명 할 수 있음)에 직면 할 수 있으므로 시간이 지나면 문제가 될 수 있으므로 (대단히 의심 스럽지만) 2 크기의 배율을 사용할 수 있기 때문입니다. http://docs.mongodb.org/manual/reference/command/collMod/#usePowerOf2Sizes

그러나 일반적으로 이것은 옳은 것처럼 보입니다.

+1

이 정보를 추가하려면 http://docs.mongodb.org/manual/core/data-modeling/을 읽고 MongoDB 데이터 모델링을 설명하고 끝에 예제 모델에 대한 링크를 제공하는 것이 좋습니다. –

+0

답장을 보내 주셔서 감사합니다. @ James Wahlin, 그 링크는 매우 유용했습니다! –

관련 문제