MongoDB에 대한 일반적인 질문입니다. 언제 임베드 할 지, 참조 할 시점입니다.내 경우에 대한 견해 MongoDB 스키마 디자인
그러나 제 경우에는 이것이 어떻게 든 딜레마 인 것처럼 보입니다. 나는 그것을 삽입 할 수있는 참조가있는 문서를 가지고 있지만 디스크의 크기는 나에게 부담이 될 것이다. 하지만 제가 참고 자료를 작성하면 성능 비용이 많이 듭니다. 나는이 회원의 세부 사항이 멤버를 블로그 모든 될 "자위대"모든 블로그를 표시 할 원인이 만든하려는
Member: {
_id: "abc",
detail: {
name: "Stack Overflow",
website: "www.stackoverflow.com"
}
}
: 여기
는 예를 들어, 난 내 문제로 '디테일'이 회원이 있다고 회원 정보를 표시하십시오. 대신,Blog: {
_id: 123,
memberId: "asdf" ---> will be used as reference to query specific member
}
또는 제 블로그에 멤버 포함 :
먼저 만 회원의 _id를 넣어 참조합니다 그래서이 옵션은 내 블로그 문서에 대해 할 수있다
Blog: {
_id: 123,
member: {
_id: "asdf",
detail: {
name: "Stack Overflow",
website: "www.stackoverflow.com"
}
}
}
첫 번째 옵션에는 성능 문제가되는 멤버에 대한 다른 쿼리가 필요합니다. 그러나 두 번째 옵션은 더 빨리 발생하기 때문에 한 번만 쿼리하면되지만 블로그 수가 늘어남에 따라 내 디스크가 '구성원'임베디드 문서의 중복 데이터에 대해 더 커질 수 있습니다.
추신 :이 예제에서 볼 수 있듯이 회원 및 블로그 관계는 일대 다이므로 회원은 많은 블로그를 보유 할 수 있지만 회원의 세부 변수는 그대로 유지됩니다. '이름'과 '웹 사이트'.
이 경우 더 좋은 의견이 있습니까? 또한 3 번째 솔루션이 있다면 좋을 것입니다. 전에 고마워.
감사합니다! 당신이 첫 번째 단락에서 설명 할 때까지 나는 충분히 생각하지 않았다 . 결국, 내 경우에는 자주 참조 (회원 세부 사항)에 의해 업데이 트되는 데이터에 대한 임베디드 의사가 나에게 성능 비용도 줄 것이다 따라서 별도의 하나를 선택할거야. 캐시 제안도 주셔서 감사합니다, Stennie. –