더북(TheBook)

엔터티를 빈번하게 집계하거나 상당량의 코드를 공유할 때는 문서 서브타입을 사용하라

지금까지 알아본 문서 컬렉션 설계 팁들은 단일 컬렉션에 상이한 문서들을 혼합하지 않도록 하는 데 초점을 맞췄다. 만약 더 이상의 설계 팁이 없다면 문서에서 타입 지시자를 절대로 사용해서는 안 된다고 생각할 수도 있을 것이다. 그러나 이는 매우 잘못된 생각이다.

문서 타입 지시자를 사용하고 서로 다른 유형들을 처리하기 위해 코드를 분리해야 할 때가 있다.

Note NoSQL 데이터베이스 설계에 관한 한 설계 원칙들을 기억하되 유연하게 적용하도록 해라. 항상 특정 상황에서 설계 원칙들의 장단점을 고려해봐라. NoSQL 데이터베이스 설계자들은 관계형 데이터베이스의 장단점을 검토하다가 관계형 데이터베이스의 많은 설계 원칙을 위반하는 자신만의 데이터 모델을 창안하게 되었다.

예를 들어 설명하면 더 쉽게 이해할 수 있을 것이다. 고객과 웹 접속 정보 데이터는 물론이고 고객이 주문한 제품 정보도 추적하고 싶다고 해보자. 이 프로세스의 첫 번째 단계로 책, CD, 소가전제품이 포함된 모든 제품 정보를 포함하고 있는 문서 컬렉션을 만들기로 했다. 지금은 제품의 유형이 세 가지 뿐이지만 고객들이 늘어나고 있어 다른 유형의 제품도 추가될 확률이 높다.

모든 제품에 관련된 정보는 다음과 같다.

제품명

제품 설명

SKU(재고관리단위)

제품 크기

배송 무게

고객 평점

표준 가격

배송비

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.