2017-10-16 2 views
0

임베디드 문서를 언제 그리고 왜 mongo 데이터베이스에서 사용해야하는지 이해하는 데 어려움이 있습니다.일관성없는 임베디드 문서를 방지하는 방법

사용자, 객실 및 예약의 세 가지 컬렉션이 있다고 가정 해 보겠습니다.

1) 어떻게이 포함 된 문서를 업데이트 할 것입니다 :

inconsistent embed

나는이 같은 상황에 대해 몇 가지 질문이? kevin의 모든 인스턴스를 임베디드 문서로 찾아서 업데이트하는 것은 응용 프로그램 개발자의 책임입니까?

2) 솔루션에서 문서 참조를 사용하는 경우 관계형 db 조인만큼 큰 것인가? 이것은 Mongo에 적합하지 않은 예에 불과합니까?

언제나 내가 완전한 바보인지 알고 싶습니다.

답변

1

이 호, 당신은 그것을 지나치 셨습니다. 귀하의 질문에 답해 주면 사용 사례가 있습니다.

  • 주어진 예약의 경우 어떤 사용자가 어떤 방을 예약 했습니까?
  • 특정 사용자의 경우 세부 정보는 무엇입니까?
  • 주어진 방에는 몇 개의 침대가 제공됩니까?

나는 실 사용자

{ 
    _id: new ObjectId(), 
    username: "Kevin", 
    mobile:"12345678" 
} 

에 대한

{ 
    _id: 1001, 
    beds: 2 
} 

에 대해 다음 모델 및 예약 지금 예약 개요에

{ 
    _id: new ObjectId(), 
    date: new ISODate(), 
    user: "Kevin", 
    room: 1001 
} 

갈 것입니다, 당신은 할 수 있습니다 모든 관련 정보 ("who", "when"및 "which")를 q uerying 예약, 어떤 오버 헤드없이 첫 번째 질문에 대한 답변을 사용합니다. 예약 세부 정보 뷰에서는 두 가지 쿼리를 수행해야하지만 적절한 인덱싱을 사용하면 번개처럼 빠르게 처리되며 기술에 따라 비동기 적으로 수행 할 수도 있습니다. 방 번호를 id로 사용하여 색인을 저장했습니다. 나머지 질문에 대답하는 방법은 분명해야합니다.

원래의 질문에 따라 다음과 같이 임베딩 할 필요가 없습니다. imho.

관련 문제