• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

관계설정에 대해서 질문있습니다

22.02.21 16:47 작성 조회수 94

0

이번 강의에서 Blog모델에 Comment를 가상으로 추가하셨는데요~ 그렇게 하는 이유가 있을까요 ? 

예로 드실 때 comment 추가하셨다가 이렇게 해도 되는데 가상으로 추가하신다고 하고 이유를 말씀안해주셔서 궁금합니다 

관계 설정때문에 그렇게 하신걸까요 ?

 

그리고 모델 생성하실 때 1대 다 관계는 "다"인 관계쪽에만 연결해주셨는데 "1" 쪽에는 넣어주면 안될까요 ? 

예를 들어

User가 다수의 Comment를 가지고 있으니 

User(1)  Comment(다) 이 구조에서

User 모델에는 Comment를 안가지고 있고 

Comment 모델에만 User를 연결한게 궁금합니다 

User 모델에도 comment: [ id~~ , ref: 'comment']를 연결해주면 어떻게 되는걸까요 ?

 

아래처럼요! 

user: { type: Types.ObjectId, required: true, ref: 'user', },

 

그렇게 하면 User모델에 comment가 생겨서 본인이 쓴 코멘트들을 가상 설정안해도 바로 프론트에서 쓸 수 있을거같아서요~

아니면 User 모델에 에 가상으로 만들어서 연결하고 보내주는게 더 성능이 좋은걸까요 ? 

아니면 Comment 모델에서 userid로 검색해서 해당 Comment만 가져오는 api를 만드는게 나을까요 ? 

답변 1

답변을 작성해보세요.

1

좋은 질문입니다. 그렇게 하셔도 되요! 뒷부분에 가면 그렇게 하고 있습니다.

 

처음에 이렇게 보여드린 이유는 관계형(대중적인) 디비에 익숙하신 분들을 위해서요. 보통은 이런느낌으로 하거든요. 점진적으로 몽고디비 스타일로 업데이트 되는 과정이 나와요. 말씀하신 comment _id 내장도 몽고디비 방식 중 하나이고요(관계형에서는 이렇게 못해요. 배열 저장이 안되니깐요). 그리고 더 나아가서는 자주 보는 최신 comments 몇개를 통째로 블로그에 내장하는 것도 나와요

jjongrrr님의 프로필

jjongrrr

질문자

2022.03.11

감사합니다~ 강의 끝까지 다 보면서 애매했던 부분들을 익힐 수 있어서 매우 좋았습니다