디자인 패턴 적용
스키마 설계 패턴은 애플리케이션의 액세스 패턴에 맞게 Realm 데이터 모델을 최적화하는 방법입니다. 애플리케이션 성능을 향상시키고 스키마 복잡성을 줄입니다. 스키마 설계 패턴은 데이터가 저장되는 방식과 애플리케이션에 반환되는 데이터에 영향을 줍니다.
스키마 설계 패턴 및 예시 목록은 패턴으로 구축 MongoDB Blog 시리즈를 참조하세요.
이 작업에 대하여
스키마 설계 패턴을 구현하기 전에 해결하려는 문제를 고려하십시오. 각 스키마 설계 패턴에는 데이터 일관성, 성능 및 복잡성에 대한 사용 사례와 장단점이 있습니다. 예를 들어, 일부 스키마 설계 패턴은 쓰기 성능을 향상시키고 다른 패턴은 읽기 성능을 향상시킵니다.
애플리케이션과 필요한 데이터를 이해하지 않고 패턴을 구현하면 애플리케이션 성능이 저하되고 스키마 설계가 불필요하게 복잡해질 수 있습니다.
예시
영화관 프랜차이즈에서 사용하는 다음 예제 패턴을 가정해 보겠습니다.
스키마 에는
movie
컬렉션 과theater
컬렉션 이 포함되어 있습니다. 스키마 는 하위 집합 패턴 을 사용하여theater
컬렉션 의movie
컬렉션 에서 정보의 하위 집합을 복제합니다. 서브세트 패턴 은 애플리케이션 으로 반환되는 문서의 크기를 줄이고 읽기 성능을 향상시킵니다.movie
컬렉션 에는 계산된 패턴 을 사용하여 영화가 상영되는 모든 극장에서 고객이 영화를 본 횟수의 실행 합계를 계산하는total_views
필드 가 포함되어 있습니다.
영화 collection
db.movie.insertOne( { _id: 1, title: "Titanic", year: 1997, director: "James Cameron", runtime: 194, distributor: "Paramount Pictures", languages: [ "English" ], total_views: 3500 } )
극장 collection
db.theater.insertMany( [ { name: "Downtown Cinemas", address: { street: "2212 Taylor Street", state: "NY" }, movies: [ { movie_id: 1, title: "Titanic", runtime: 194, views: 1500 } ] }, { name: "Midtown Theater", address: { street: "1232 5th Street", state: "NY" }, movies: [ { movie_id: 1, title: "Titanic", runtime: 194, views: 2000 } ] } ] )