Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- npm명령어
- component
- 리액트스타디
- 리액트
- 시퀄라이즈공부
- nodejs교과서
- React Component
- node
- NPM
- 리액트기초
- 클래스컴포넌트
- mongo
- express-generator
- sementicversion
- 리액트컴포넌트
- 시퀄라이즈
- mongoose
- MongoDB
- React
- 제로초예제
- sequelize
- nodeJS
- NoSQL
Archives
- Today
- Total
개발노트
schema 본문
왜래키
Post테이블
db.Post.belongsTo(db.User); // Post table에 user Id 컬럼이 생긴다
User 테이블 입장도 설정해줘야된다 (일대다 관계)
user는 게시글을 많이 쓸수있으니까. 많이 갖고있으므로 hasMany
db.User.hasMany(db.Post, {as:'Posts'} )
as로 이름을 바꿔줄 수 있다 (javascript 객체에서 사용할 이름)
<-> foreignKey는 컬럼명에서 사용할 이름.
셀프조인
user테이블의 아이디 값으로 팔로잉, 팔로워 관계를 나타내는 팔로우 테이블을 만드는데,
db.User.helongsToMany(db.User, {through:'Follow'});
db.User.helongsToMany(db.User, {through:'Follow'});
user테이블을 통해서.. 팔로우 테이블을 만드니까 through
지금 following_id, follower_id 컬럼 둘다 user_id인것은 맞지만
이름이 같으면 안되니까 as로
db.User.helongsToMany(db.User, {through:'Follow' ,as: 'Followers'});
db.User.helongsToMany(db.User, {through:'Follow' ,as: 'Followings'});
as로 이름을 붙여봤자 (자바스크립트객체이름만바꾸는거고) 테이블컬럼명은 user_id가 되버림.
그래서 실제 db에서 구별하는 이름인 foreignKey 를 쓴다
왜래키는 말그대로 (상대방키를)참조하는 키 이기 때문에..
db.User.helongsToMany(db.User, {through:'Follow' ,as: 'Followers', foreignKey:'followingId' });
db.User.helongsToMany(db.User, {through:'Follow' ,as: 'Followings', foreignKey:'followerId' });
(자기자신을 참조할순 없는 논리?로 그런건가....)
'Node js > mysql sequelize' 카테고리의 다른 글
sequelize 사용 (0) | 2020.07.07 |
---|---|
sequelize 프로젝트만들기 (0) | 2020.07.05 |