2016-12-20 2 views
0

안녕하세요,"일대 다"관계에 대한 NoSQL 데이터 모델링

저는 MongoDB를 백엔드로 사용하여 작은 데이터 모델을 개발하려고합니다. NoSQL 데이터베이스 및 데이터 모델로 개발 한 것은 처음입니다.

큰 아이디어는 다음과 같습니다. 수행 할 수있는 서비스가 많으며 각 SERVICE는 다른 장소에서 수행 할 수 있습니다. 예를 들어 먹는 곳 (서비스)을 보여주는 웹 사이트를 생각해 보겠습니다. 할 수있는 곳이 여러 곳이므로 많은 장소 (장소)에 대해 1 서비스 (EAT)가 있습니다.

나는 이것을 모델링하는 방법을 모릅니다. 어떤 아이디어입니까?

SERVICE { 
_id: ObjectId, 
Name: String, 
Code: String 
} // Data model for the Service Collection? 

PLACES { 
_id: ObjectId, 
NameOfPlace: String, 
Service1: String, 
Service2: String, 
... 
Servicen: String 
} /* This way, by using the flexibility of MongoDB, 
updating the document each time with some new (key, value). 
Doesnt seem elegant nor efficient.*/ 

PLACES { 
_id: ObjectId, 
NameOfPlace: String, 
Services: { 
      NameOfService1: refID SERVICE COLLECTION, 
      NameOfService2: refID SERVICE COLLECTION.. 
      } 
} // Maybe this way is better? No idea how to do those tho' 

나에게 설명 할 수있는 더 나은 해결책이 있습니까? 모두에게 감사드립니다!

답변

1

참조를 사용하여 모델링을 고려해야합니다. 기본적으로, 장소는 구현 세부 사항에 대한 답변을

MongoDB - Data Modeling introduction

MongoDB - Model One-to-many relationship with reference

+0

감사에 대한 Serivce의 ID를

SERVICE { _id: ObjectId, Name: String, Code: String } PLACES { _id: ObjectId, NameOfPlace: String, Services: [Service1_id, Service2_id, ...] } 

당신은 다음 링크를 읽을 수의 컬렉션을 가지고있다. 몇 가지 문제가 있었지만 같은 해결책을 생각해 냈습니다. 그러나 올바른 답변으로 투표하는 것이 유용 할 수 있다고 믿기 때문에 다른 사람들이 답을 찾을 수 있습니다! 다시 한 번 감사드립니다! – mnemosdev

0

이상적으로는 하나의 컬렉션 내에 중첩 된 하위 문서 또는 장소 배열로 저장되어야합니다. NoSql은 전통적인 RDBMS 관계보다는 중첩 된 데이터 오브젝트/배열을 사용하여 그러한 요구 사항에 사용해야합니다.

관련 문제