• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

MongoDB 데이터 구조에 대해 질문 있습니다.

21.06.29 10:49 작성 조회수 142

1

안녕하세요. 강의를 듣고 궁금한 점이 생겨서 여쭤봅니다.

이러한 모양의 테이블이나 이보다 더 복잡한 테이블의 셀안의 값을 표현하고자 할때의 질문이 있습니다.

저러한 모양의 스키마를 짜서 내장이나 populate하는 것은 document가 길어질 수록 셀에 표현될 값을 탐색하는데 어려움이 있습니다.

그렇다고 각 셀마다 저기에 맞는 값을 호출해서 표현하기에는 그림의 셀만해도 서버를 18번 호출하는 것으로 보여서 망설여집니다.

이러한 복잡한 테이블을 표현할때 Mongodb의 좋은 스키마를 짜는 방법이 있는지 궁금합니다.

답변 1

답변을 작성해보세요.

0

김현종님 안녕하세요 :)

일단 스키마 설계는 상황에 따라 달라지는데요.

A,B,C 각각 하나의 문서로 저장하면 어떨까 싶어요. 

각 문서는 다음과 같이 짤 수 있을거 같아요.

const ScoreSchema = new mongoose.Schema({
  studentId: { type: mongoose.Types.ObjectId, required: true, ref: 'student'},
  midterm:{
    Korean: String,
    English: String,
    Math: String
  },
  final:{
    Korean: String,
    English: String,
    Math: String
  }
})

그리고 ScoreSchema를 "수업" schema 혹은 "학생" schema에 복제해서 내장을 할 수도 있고요. 만약 지금 populate까지만 수업을 들으셨다면 조금 더 들어보시길 권장합니다. 내장 & 복제를 활용한 몽고디비스러운 스키마 설계를 자세하게 다룹니다 :)