나는 관계형 데이터베이스 배경에서 왔으며 NoSQL 데이터베이스 (또는 JSON 객체)에서 관계형이었던 데이터를 저장하는 방법을 고민하고있다.MongoDB를위한 JSON 데이터를 구성하는 가장 좋은 방법
제 질문은, 마을에 관한 데이터를 어떻게 저장합니까? 각 마을에는 사용자가 붙어 있으며 각 마을마다 X 좌표와 Y 좌표가 있습니다. 다음과 같이 개체가 표시됩니다.
var map = [{
x: 1,
y: 1,
terrainType: land,
village: {
mayor: jragon,
population: 150,
gold: 100,
iron: 25,
garrason: {
archers: 4,
knights: 1
},
buildings: {
smith: {
level: 4,
upgradeFinish: false;
},
mill: {
level: 2,
upgradeFinish: 'some date/time...'
}
}
}
}];
그러나 실제로 볼 수 있듯이 다소 혼란 스러울 수 있습니다. 일부 mongoose 도우미를 사용하여 데이터를 쿼리 할 때 도움이 될 것 같아요.
이 개체를 사용하더라도 관계의 일부 측면은 여전히 있습니다. map.village.mayor는 다른 컬렉션의 사용자를 나타냅니다.
지도 수집은 매번지도를 그리는 데 사용됩니다. 지도를 그릴 때 마을이 어떤 수준으로 사용할 타일을 결정합니다.
죄송합니다. 분명히하지 않은 경우 죄송합니다.
근본적으로 잘못된 디자인은 없습니다. 시장은 일반적으로 "사람들"컬렉션에 문서의 ID로 저장되지만, "결합"과 같은 조작 및 다중 DB 액세스 또는 특수 쿼리를 피하기 위해 시장에 대해 필요한 일부 정보가 저장 될 수도 있습니다 직접 마을 테이블에. –
오케이. 사용자에게 연결된 모든 마을을 찾고 싶다고 가정 해보십시오. 일반적으로 user_id에있는 village 테이블에 가입합니다. 그러나 여기서 map.village.mayor = user_id 인 객체를 검색 하시겠습니까? 3 가지 개별 컬렉션을 갖는 것이 가장 좋습니다. 사용자,지도 및 마을? 그런 다음 psudo-join 명령을 수행합니까? – Jragon