MongoDB - 데이터 모델링
728x90

MongoDB에서의 명령어들을 배우기 전에 MongoDB에서 데이터 모델링의 기본을 먼저 보고 가겠다.

  • schema 디자인할 때 고려사항
    • 사용자 요구(User Requirement)에 따라 schema를 디자인한다.
    • 객체들을 함께 사용하게 된다면 한 Document에 합쳐서 사용한다.(ex. 게시물 - 댓글 관계)
      • 그렇지 않으면 따로 사용해야 한다.(join은 사용하지 않는다.)
    • 읽을 때 join하는게 아니라 데이터를 작성할 때 join한다.
  • 예제
    • 간단한 블로그를 위한 데이터베이스를 디자인한다고 가정한다.
      • 요구사항
        • 게시글에는 작성자 이름, 제목, 내용이 담겨 있다.
        • 각 게시글은 0개 이상의 태그를 가지고 있을 수 있다.
        • 게시글엔 댓글을 달 수 있다. 댓글은 작성자 이름, 내용, 작성 시간을 담고 있다.
        • RDMS에서 데이터베이스 schema 디자인
          • RDMS라면 테이블 3개를 만들어야 효율적이다.
          • NoSQL에서는 모든 것을 하나의 Document에 넣는다.
            • {
               _id: **POST_ID**,
               title: POST_TITLE,
               content: POST_CONTENT,
               username: POST_WRITER,
               **tags**: [ TAG1, TAG2, TAG3 ],
               time: POST_TIME
               **comments**: [
                   { 
                       username: COMMENT_WRITER,
                       mesage: COMMENT_MESSAGE,
                       time: COMMENT_TIME
                   },
                   { 
                       username: COMMENT_WRITER,
                       mesage: COMMENT_MESSAGE,
                       time: COMMENT_TIME
                   }
               ]
              }

참고한 사이트 :

728x90
반응형

'Database > MongoDB' 카테고리의 다른 글

MongoDB - 배열 쿼리 - (1)  (0) 2021.12.19
MongoDB - Document Query(조회) - (2)  (0) 2021.12.18
MongoDB - Document Query(조회) - (1)  (0) 2021.12.18
MongoDB - Database/Collection/Document생성,제거  (0) 2021.12.18
MongoDB 소개, 설치  (0) 2021.12.17