[MongoDB] 몽고디비 스키마 설계 팁

minidoo·2020년 10월 4일
0

MongoDB

목록 보기
1/2
post-thumbnail

RDB vs MongoDB

RDBMongoDB
DatabaseDatabase
TableCollection
Tuple / RowDocument
ColumnField
Primary KEYPrimary KEY (_id)

RDB의 JOIN

RDB는 테이블 구조가 리소스(현실의) 구조이다.

< Car Table >

Column: Kinds, User, Cost

1. 페라리, 송가희, 5000
2. 산타페, 송가희, 6000
3. 벤츠, 송가희, 8000
< User Table >

Column: User, Age, Gender

1. 송가희, 38, 여

위의 예제는 RDB 스키마 구조이다.
Car TableUser Table 에 공통된 User 필드가 존재하며, 이를 JOIN 할 것이다.


MongoDB의 Embedded Document

MongoDB는 비관계형 데이터베이스인 NoSQL이다.
MongoDB는 JOIN 대신, Embedded Document 구조를 통해 두 Collection을 합친다.

< User Collection >

{
  송가희,
  38,
  여,
  자동차: [
    {
      페라리,
      5000
    },
    {
      산타페,
      6000
    },
    {
      벤츠,
      8000
    }
  ]
}

자동차는 자주 변경되는 데이터가 아니다.
즉, Collection으로 따로 빼기 보다는 같은 Collection 안에서 Array 의 형태로 넣는 것이 좋다.

그러나 Array 안에 들어가는 객체나 필드 양이 많아진다면 따로 빼는 것도 고려해보자!

0개의 댓글