IM 69일차
TIL
m:n Table 구성
구상한 스키마
- 유저와 코멘트 테이블이 존재하고 좋아요를 확인 할수 있는 m:n 테이블 구성
적용 방법
- sequelize 공식 페이지에서 언급된 것 처럼 belongsToMany로 관계를 맺어준다.
- 실질적으로 likes 테이블과는 직접적으로 관계를 맺지 않는다.
- user와 comment 테이블을 belongsToMany 로 이어주고 중간 테이블을 likes로 지정한다.
// user.js
static associate(models) {
models.User.hasMany(models.Comment, {
foreignKey: "id",
});
models.User.belongsToMany(models.Comment, {
through: models.Likes,
foreignKey: "user_id",
});
}
// comment.js
static associate(models) {
models.Comment.belongsTo(models.User, {
foreignKey: "user_id",
});
models.Comment.belongsToMany(models.User, {
through: models.Likes,
foreignKey: "cmt_id",
});
- 위과 같이 구성하고 다음과 같이 수행하면
{
id: 1,
name: 'A',
createdAt: 2021-05-01T12:19:46.000Z,
updatedAt: 2021-05-01T12:19:46.000Z,
Comments: [
Comment {
dataValues: [Object],
_previousDataValues: [Object],
_changed: Set(0) {},
_options: [Object],
isNewRecord: false,
Likes: [Likes],
User: [User]
},
Comment {
dataValues: [Object],
_previousDataValues: [Object],
_changed: Set(0) {},
_options: [Object],
isNewRecord: false,
Likes: [Likes],
User: [User]
}
]
}
와 같은 결과를 얻었다.
오늘 한 일
- m:n 테이블 구성
- m:n 테이블 테이블을 이용한 검색기능 확장
- 데이터 베이스 재정리. 통폐합.
To Do
-
scss 도 활용을 생각해보면 좋을것 같다.
-
typescript 공부 예제를 생각해보자
-
vue, angular 공부 해보자
오늘은...
-
scss 도 활용을 생각해보면 좋을것 같다.
-
typescript 공부 예제를 생각해보자
-
vue, angular 공부 해보자
오늘은...
어제 고생하였던 것 처럼 m:n 테이블 구성 하는데에 하루를 보냈다. 그리고 작게나마 성취가 있었다. 부족하나마 m:n 테이블을 구성하고 그로부터 원하는 정보를 얻게끔 구성할 수 있었다. 물론 그와중에 정보를 얻는게 방해가 되는것 같은 자투리 테이블을 합쳐서 큰 테이블 몇개로 구성을 단순화 시켰다. 내일은 토큰을 활용한 접속 유지 작업을 수행해야겠다.
Author And Source
이 문제에 관하여(IM 69일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@karuiner/IM-69일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)