인프런 커뮤니티 질문&답변

hyese ch님의 프로필 이미지
hyese ch

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

sequelize 연결 시 테이블간 관계에 대한 질문입니다.

작성

·

199

0

복습을 하던 도중 궁금한 점이 생겨서 질문 드립니다.

현재 User, Ask, Answer 테이블을 만들고 관계를 설정하려는 상황입니다.

하나의 Ask(일종의 메세지)는 한 명의 User에게 속해 있고, User는 여러개의 Ask를 받을 수 있습니다.

하나의 Ask에는 하나의 Answer가(일종의 댓글) 달릴 수 있습니다.

User는 당연히 여러개의 Ask를 가지고 또 여러개의 Answer를 갖습니다.

이 관계를 아래와 같이 작성했는데, 어떤 값도 외래키로 각각의 테이블에  들어오지 않아서 질문 드립니다.

// USER
db.User.hasMany(db.Ask);
db.User.hasMany(db.Answer);
// ASK
db.Ask.belongsTo(db.User);
db.Ask.belongsTo(db.Answer);
// ANSWER
db.Answer.belongsTo(db.User);
db.Answer.belongsTo(db.Ask);

답변 6

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

익명이지만 내부적으로는 누군지 추적하려면 저장해야죠.

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

ask와 answer의 관계에서 ask가 hasOne이고 answer가 belongsTo입니다.

설계가 좀 이상하긴 한게 하나의 ask가 있다면 ask를 작성한 사람 아이디와 ask의 대상이 되는 사람 아이디를 둘 다 저장해야하지 않나요?

0

hyese ch님의 프로필 이미지
hyese ch
질문자

선생님, 익명인 경우에도 정보를 저장해야 할까요?

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

아, 익명이면 빼셔도 됩니다.

0

hyese ch님의 프로필 이미지
hyese ch
질문자

ask를 작성한 사람이 비회원이거나 익명인 경우도 따로 테이블을 만들어야 하나요? 
ask의 대상이 되는 사람 아이디는 db.User.belongsTo(db.Ask);

로 해야하나요..?

0

hyese ch님의 프로필 이미지
hyese ch
질문자

감사합니다! 

hyese ch님의 프로필 이미지
hyese ch

작성한 질문수

질문하기