English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MongoDB에서의 데이터는 flexible schema.documents와 동일한 컬렉션에서 동일한 컬렉션에서의 문서. 문서는 동일한 필드셋이나 컬렉션의 공통 필드를 가지지 않아도 됩니다. 문서는 다른 데이터 유형을 포함할 수 있습니다.
MongoDB는 두 가지 유형의 데이터 모델을 제공합니다:嵌入式 데이터 모델과 정규화된 데이터 모델. 필요에 따라 문서를 준비할 때 이 두 가지 모델 중 하나를 사용할 수 있습니다.
이 모델에서는 모든 관련 데이터(데이터 삽입)를 하나의 문서에 모을 수 있습니다. 이를 통해 비정규화된 데이터 모델이라고도 합니다.
예를 들어, 우리가 세 가지 다른 문서(Personal_details, Contact, Address)에서 직원의 상세 정보를 가져오는 경우, 모든 세 가지 문서를 하나의 문서에 삽입할 수 있습니다. 예를 들어, 다음과 같이:
{ _id:, 직원 번호: "10025AE336" 개인 상세 정보: { 이름: "Radhika" 성: "Sharma" 생일: "1995-09-26" } 연락처: { e-메일: "[email protected]" 전화: "9848022338" } 주소: { 도시: "Hyderabad", 지역: "Madapur", 상태: "Telangana" } }
이 모델에서는 원본 문서의 서브 문서를 참조할 수 있는 참조를 사용할 수 있습니다. 예를 들어, 다음과 같은 문서를 정규화된 모델로 다시 작성할 수 있습니다:
직원:
{ _id: "ObjectId"101> 직원 번호: "10025AE336" }
개인 상세 정보:
{ _id: "ObjectId"102> empDocID: "ObjectId"101" 이름: "Radhika" 성: "Sharma" 생일: "1995-09-26" }
연락처:
{ _id: "ObjectId"103> empDocID: "ObjectId"101" e-메일: "[email protected]" 전화: "9848022338" }
주소:
{ _id: "ObjectId"104> empDocID: "ObjectId"101" 도시: "Hyderabad", 지역: "Madapur", 상태: "Telangana" }
사용자 요구에 따라 아키텍처를 설계합니다.
그들을 함께 사용하면 하나의 문서에 결합합니다. 그렇지 않으면 분리합니다(하지만 필요하지 않은 연결을 보장하십시오).
데이터를 복사합니다(하지만 제한이 있습니다), 왜냐하면 디스크 공간이 계산 시간보다 저렴하기 때문입니다.
쓰기 시에 연결을 수행하며, 읽기 시에 연결을 수행하지 않습니다.
가장 일반적인 사용 사례를 위해 계획을 최적화하십시오.
아키텍처에서 복잡한 합성을 수행합니다.
고객이 블로그에/웹 사이트는 데이터베이스 설계를 수행하고 RDBMS와 MongoDB 모델 설계 간의 차이점을 확인합니다. 웹 사이트는 다음과 같은 요구 사항을 가지고 있습니다.
각 포스트는 독특한 제목, 설명 및 웹 사이트 주소를 가지고 있습니다.
각 포스트는 하나나 여러 가지 태그를 가질 수 있습니다.
각 포스트는 게시자의 이름과 좋아요의 총 수를 가지고 있습니다.
각 포스트는 사용자가 제공한 댓글, 그들의 이름, 메시지, 데이터 시간 및 좋아요를 포함하고 있습니다.
각 포스트에 대해, 0개나 많이나 있는 댓글이 있을 수 있습니다.
RDBMS 아키텍처에서는, 위 요구사항을 충족하기 위해 최소한 세 개의 테이블을 가질 것입니다.
MongoDB 모델에서는, 포스트 컬렉션과 다음 구조를 가질 것입니다.-
{ _id: POST_ID title: TITLE_OF_POST, description: POST_DESCRIPTION, by: POST_BY, url: URL_OF_POST, tags: [TAG1, TAG2, TAG3], likes: TOTAL_LIKES, comments: [ { user:'COMMENT_BY', message: TEXT, dateCreated: DATE_TIME, like: LIKES } { user:'COMMENT_BY', message: TEXT, dateCreated: DATE_TIME, like: LIKES } } }
따라서, 데이터를 표시할 때, RDBMS에서는 세 개의 테이블을 연결해야 하지만, MongoDB에서는 데이터가 단 하나의 컬렉션에서 표시됩니다.