RDB | MongoDB |
---|---|
Database | Database |
Table | Collection |
Tuple / Row | Document |
Column | Field |
Primary KEY | Primary KEY (_id) |
RDB는 테이블 구조가 리소스(현실의) 구조이다.
< Car Table >
Column: Kinds, User, Cost
1. 페라리, 송가희, 5000
2. 산타페, 송가희, 6000
3. 벤츠, 송가희, 8000
< User Table >
Column: User, Age, Gender
1. 송가희, 38, 여
위의 예제는 RDB 스키마 구조이다.
Car Table
과 User Table
에 공통된 User
필드가 존재하며, 이를 JOIN
할 것이다.
MongoDB
는 비관계형 데이터베이스인 NoSQL이다.
MongoDB는 JOIN 대신, Embedded Document
구조를 통해 두 Collection
을 합친다.
< User Collection >
{
송가희,
38,
여,
자동차: [
{
페라리,
5000
},
{
산타페,
6000
},
{
벤츠,
8000
}
]
}
자동차는 자주 변경되는 데이터가 아니다.
즉, Collection으로 따로 빼기 보다는 같은 Collection 안에서 Array
의 형태로 넣는 것이 좋다.
그러나 Array 안에 들어가는 객체나 필드 양이 많아진다면 따로 빼는 것도 고려해보자!