mongoengine - MongoDB怎么设计多级分类好?
伊谢尔伦
伊谢尔伦 2017-04-22 08:59:46
0
6
908

文章以及课程模型需要定义所属分类,该分类是多级的,MongoDB中怎么设计比较合理?如果直接定义在文档里,担心一致性的问题!

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(6)
刘奇

MongoDB의 컬렉션 또는 포함된 문서
네, 관련된 특별한 생각

Peter_Zhu

내가 한 일은 다음과 같습니다.

으아악

쉬운 검색과 순위

刘奇

삽입된 문서create/delete/update/가 자주 작동하고 데이터를 가져올 때 정렬 요구 사항이 있는 경우 최대 3개 수준을 갖고 너무 깊게 포함하지 않는 것이 좋습니다.
이제는 collection이 너무 많이 내장되어 있어 많은 작업이 매우 불편하므로 extract을 제거하려면 많은 노력을 기울여야 합니다.
물론 데이터를 한 번만 저장하고 데이터 작업이 주로 읽기인 경우에는 그렇게 많이 생각할 필요가 없습니다.
제안하신 강좌 기사 분류처럼 요구 사항을 올바르게 이해했다면 다음과 같을 수 있을까요?

으아악

degree은 강좌 카테고리의 레벨을 나타냅니다. 이처럼 강좌에 포함된 기사의 카테고리는 읽을 때 degree에 따라 읽혀집니다. 예를 들어, 기사는 "뉴턴의 제2법칙"이고 강좌 분류는 (물리학 -> 힘)입니다. 그런 다음 다음 이름으로 저장하세요.

으아악

데이터를 읽을 때 category, degree를 눌러 sort로 이동하세요.

伊谢尔伦

이것은 사실 디자인의 트레이드 오프이며, mongdb와는 아무런 관련이 없습니다. mysql에서도 이 문제는 아직 생각해 볼 필요가 있습니다!
개인적으로는 여전히 비즈니스 관점에서 시작하여 분석할 비즈니스 데이터가 제약 조건을 충족하는지, 예를 들어 실시간 일관성이 필요한지, 최종 일관성이 필요한지 고민해야 한다고 생각합니다.

또 다른 차원에서, mongdb 자체의 경우 삽입된 문서는 일반 문서와 크게 다르지 않습니다. 그러나 추가하려는 삽입된 문서가 자주 변경되는 경우, 특히 크기에 제한이 없는 경우에는 추가해야 합니다. 여전히 연관을 사용하는 것이 더 적절합니다!

左手右手慢动作

자주 업데이트하지 않으므로 카테고리를 중첩 문서로 정의하면 됩니다.

Ty80

따옴표를 사용하세요.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿