, 그것은이 세 모델 :디자인 MongoDB의 스키마 : 문서를 포함하거나 사용하는 외부 키 내 프로젝트에서
- 도시
- 플라자
- 스토어
도시가있다 광장과 상점; 광장에는 상점이 있습니다.
내 초기 디자인은 관계에 "외래 키"를 사용하는 것입니다.
class City(Document):
name = StringField()
class Plaza(Document):
name = StringField()
city = ObjectIdField()
class Store(Document):
name = StringField()
city = ObjectIDField()
plaza = ObjectIdField()
나는이 디자인은 꽤 SQL 접근 방식처럼 느낀다 (I는 MySQL의에서 오전과 MongoDB를 데리러 시작 jsut).
프로젝트의 범위는 다음과 같습니다. 5 개 도시; 각 도시에는 5 개의 광장이 있습니다. 광장에는 200 개의 점포가 있습니다. 상점에 여러 제품이 있습니다 (위 코드에서 모델화되지 않았습니다).
도시 또는 광장의 모든 상점을 쿼리합니다. 한 도시의 모든 광장.
모든 상점과 광장을 시티 컬렉션에 삽입해야합니까? mongodb에서 참조를 사용하지 말고 embeded 문서를 대신 사용하십시오. 내 특정 프로젝트에서 어느 것이 더 나은 접근 방법입니까? 나에게있어, 나는 "외래 키"디자인에 익숙하지만 mongodb를 이용하지 않는 것을 두려워한다.
거꾸로 들리는 도시 - 상점의 속성이 아닌 도시입니까? –
예, 도시는 상점의 속성입니다. – shoujs