MongoDB - 데이터 모델링

2021. 12. 18. 09:20·Database/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
                   }
               ]
              }

참고한 사이트 :

  • https://velopert.com/mongodb-tutorial-list
728x90
반응형

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

MongoDB - 배열 쿼리 - (1)  (1) 2021.12.19
MongoDB - Document Query(조회) - (2)  (2) 2021.12.18
MongoDB - Document Query(조회) - (1)  (0) 2021.12.18
MongoDB - Database/Collection/Document생성,제거  (0) 2021.12.18
MongoDB 소개, 설치  (0) 2021.12.17
'Database/MongoDB' 카테고리의 다른 글
  • MongoDB - Document Query(조회) - (2)
  • MongoDB - Document Query(조회) - (1)
  • MongoDB - Database/Collection/Document생성,제거
  • MongoDB 소개, 설치
pink_salt
pink_salt
유익함을 주는 개발자가 되도록 keep going
  • pink_salt
    KeepGoingForever
    pink_salt
  • 전체
    오늘
    어제
    • 분류 전체보기 (117)
      • Project (7)
      • WEB study (3)
        • WEB(Springboot) (10)
        • Git, GitLab (13)
        • Clean code (1)
        • FrontEnd (3)
      • Study (21)
        • Algorithm (19)
        • 면접 준비 (2)
      • Cloud Computing (2)
        • AWS (2)
      • 프로그래밍 언어 (35)
        • Java (29)
        • Python (0)
        • javascript (6)
      • 운영체제 (0)
        • Linux (0)
      • Database (4)
        • MongoDB (8)
        • SQL (8)
      • 애플리케이션 개발 (1)
        • Android (1)
      • AI (1)
        • Deeplearning (1)
        • machinelearning (0)
      • Daily (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    codepresso
    티스토리챌린지
    언어
    대외활동
    코딩이러닝
    git branch
    코딩강의
    객체지향
    코드프레소
    백준
    dp
    Database
    mysql
    자바
    개념
    오블완
    SWEA
    spring boot
    무료IT교육
    IT교육
    Query
    무료코딩교육
    Java
    빅오표기법
    MongoDB
    Git
    BFS
    python
    SW
    gitlab
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
pink_salt
MongoDB - 데이터 모델링
상단으로

티스토리툴바