작성
·
181
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까지만 수업을 들으셨다면 조금 더 들어보시길 권장합니다. 내장 & 복제를 활용한 몽고디비스러운 스키마 설계를 자세하게 다룹니다 :)