외래키는 1 : N 에서 N 값이 1을 찾아갑니다. 1 에서 N 을 찾아가게 된다면
PK(primary key)가 다수 이기때문입니다.
그래서 , N에서 외래키값을 가지고 1 에게 찾아갑니다.
N 에서 외래키 값이 Null 이면 참조 무결성이 깨지지 않습니다.
그것은 없으니깐 찾아갈 이유가 없기때문입니다.
그런데 1 에서 값이 Null 이면 참조 무결성이 깨집니다.
N 이 자식, 1 이 부모
db.user.hasMany(db.post, {
foreignKey: "poster",
souceKey: "id"
});
db.post.belongsTo(db.user, {
foreignKey: "poster",
targetKey: "userId"
});
db.User.belongsToMany(db.User, {
foreignKey: "followingId",
as: "Followers",
through: "Follow"
});
db.User.belongsToMany(db.User, {
foreignKey: "followerId",
as: "Followings",
through: "Follow"
});
/*
as : 매칭 모델 이름
foreignKey : 상대 테이블 아이디
ex:
user follow user
1 - su 1 - 2 1 - su
2 - yang 1 - 3 2 - yang
3 - ho 3 - 4 3 - ho
4 - ya 2 - 3 4 - ya
이렇게 짝을 지으면 누가 누구를 이어주는 지모르기때문에 as 사용
*/