나는 EmbeddedThing
을 포함하는 Parent
의 콜렉션을 가지고 있으며, 각각 EmbeddedThing
에는 그것을 만든 User
에 대한 참조가 들어 있습니다.mongodb : 내 임베디드 객체를 정규화해야하는 곳입니까?
"results": [
{
"_id": 1,
"value": [ `EmbeddedThing`, `EmbeddedThing`, … ]
},
{
"_id": 2,
"value": [ `EmbeddedThing`, `EmbeddedThing`, … ]
},
…
]
이인가 정말 단지로 EmbeddedThing
를 정상화해야하는 위치 :
UserCollection: [
{
_id: ObjectId(…),
name: '…'
},
…
]
ParentCollection: [
{
_id: ObjectId(…),
EmbeddedThings: [
{
_id: 1,
userId: ObjectId(…)
},
{
_id: 2,
userId: ObjectId(…)
}
]
},
…
]
은 곧 내가지도 축소/사용 달성하기 위해 관리 특정 사용자에 대한 모든 EmbeddedThing
의를 얻을 필요가 있음을 깨달았 자신의 컬렉션, 또는 이것을 유지하기 위해 여전히지도/축소를 유지해야합니까? 다른 디자인은 아마도?
도움이된다면 일부보고/집계 작업 (이 작업을 잘못했을 수 있음을 깨달았습니다)과 대조적으로 사용자는 Parent
번에 해당하는 EmbeddedThing
개의 목록을 볼 수 있습니다.
감사합니다.
나는 유연함 때문에 mongodb를 좋아하지만, 추가 재료에 대해 생각해야하기 때문에 "의존적"인 부분을 정말로 싫어한다. 이것은 아주 새로운 프로젝트이므로 액세스 패턴을 추측 할 수만있다. 또한 새로운 것이기 때문에 속도가 아닌 개발의 용이성에 중점을 둡니다. 나는 그 순간에 그것을 역 정규화하지 말아야한다. – thatmarvin
@thatmarvin : 생각하는 것이 좋다 :) –