RDBMS에서는 정규화된 데이터 모델을 권장한다. 이는 무결성을 보장할수 있고 1:1, 1:N 등의 관계를 생성하여 모델링을 할 수도 있다. 몽고DB의 경우 정규화된 스키마는 없지만, 설계시 고려해야할 사항들이 있다.
- 어플리케이션의 데이터 액세스 패턴은 어떠한지?
- READ와 WRITE 비율은 어떠한지
- 데이터를 찾는 쿼리의 복잡도는 어떠한지
- 집계는 필요한지
- 얼마나 많은 데이터가 저장되는지
- 어떤 기능이 필요한가?
- 조인이 필요한지
- 원자성과 롤백 특성이 필요한지
- 트랜잭션은 어떻게 처리할지
- 고유 식별자와 PK는 어떻게 선정할지
- 단순히
_id 를 사용할 것인지
- 자동생성된 ObjectId를 사용할 것 인지 아니면 별도로 생성할 것인지
- 샤딩키는 어떻게 정할 것인지