[데이터베이스/ORM] 모델링과 Sequelize
1. 모델링
모델링은 처음 보면 원론적인 내용일 수 있겠지만, 실무에서 그대로 활용하는 필수적인 내용이다.
모델링을 하면서 엔티티, 관계유형, 속성 등 처음 보았을때는 다소 이론적인 내용에 가깝게 보였다.
그러나 Sequelize를 작성하면서, 모델링에 대한 원론적인 내용이 그대로 활용된다는 것을 알게 되었다.
2. associate
두 model이 서로 연관관계가 있다면 associate
이후 belongsTo 등 세부적인 연관관계를 정의해준다.
2-0. 참조의 개념
참조 대상 : 부모 테이블, 피참조(참조를 받는 대상) : 자식 테이블
부모 테이블의 해당 속성을 참조하게 된다면, 해당 속성을 매개로 하여 부모 테이블의 column(data)들을 모두 불러올 수 있다(data Read, findByPk).
참조한 속성은 foreign key 설정을 통해 다른 테이블이 참조할 수 있도록 설정.
2-1. hasOne / belongsTo
hasOne
1:1 관계의 두 모델이 있을때, 부모(1) 테이블이 자식(1) 테이블에게 참조할 수 있는 속성을 제공하고자 할 때
belongsTo
1:1 관계의 두 모델이 있을때, 자식(1) 테이블이 부모(1) 테이블의 한 속성을 참조하고자 할 때
- 각 부서는 한 명의 팀장을 보유하고 있다.
- 부서와 팀장의 관계는 1:1이다.
2-2. hasMany / belongsTo
hasMany
1:N 관계의 두 모델이 있을때, 부모(1) 테이블이 자식(N) 테이블 여러 개에게 참조할 수 있는 속성을 제공하고자 할 때
belongsTo
자식 테이블이 부모 테이블을 참조하고자 할 때
- 각 부서는 여러 명의 직원을 보유하고 있다.
- 부서와 직원의 관계는 1:N이다.
2-3. belongsToMany
belongsToMany
M:N 관계의 두 모델이 있을때, 각 테이블들이 서로에게 참조할 수 있는 속성을 제공하고자 할 때
- 각 직원들은 업무적으로 소통할 수 있는 여러 부서들과 함께 일한다.
- 회사의 입장에서, 직원들과 부서들간의 관계는 M:N이다.
3. primary key / foreign key
서로 연결관계에 있는 테이블들이 참조하고자 하는 속성값이 있을때
- 부모 테이블은 primary key를 제공
- 자식 테이블은 해당 참조 속성을 foreign key로 설정
4. OnDelete : Cascade
부모 테이블의 Column(혹은 데이터)가 삭제된다면, 해당 속성을 참조하는 자식 테이블의 속성 혹은 데이터도 같이 삭제한다.
5. Op
Sequelize의 검색 객체
model의 columns들을 찾되, "word" 단어가 앞뒤로 포함되어 있는 모든 경우를 찾는다.
models.test.findAll({
where:{
postName: {
[Op.like]: "%" + word + "%"
}
}
})
6. 참조 링크
table 연결관계
https://velog.io/@josworks27/Sequelize-Association
table 연결관계 및 관련 sequelize 메소드
https://velog.io/@jujube0/SOPT-5%EC%B0%A8-%EC%84%B8%EB%AF%B8%EB%82%98
외래키, 외래키 옵션(On Delete, Cascade)
https://bamdule.tistory.com/45
부모 테이블, 자식 테이블
https://jcross77.tistory.com/53
관련 명령어 사용하는 예제(강의)
https://www.youtube.com/watch?v=CMc7IVdYumw
Sequelize Op
https://victorydntmd.tistory.com/92
Author And Source
이 문제에 관하여([데이터베이스/ORM] 모델링과 Sequelize), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gyrbs22/개발지식-모델링과-Sequelize저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)