개발일지/Node
[Sequelize] 기본키가 아닌 다른 키로 외래키 지정할 때
낙락장송s
2023. 5. 17. 18:27
Sequelize를 이용해서 DB 조회를 하던 중 부모 테이블의 기본키가 아닌 다른 키를 참조해서 자식 테이블을 불러와야 할 필요가 있었다.
A 테이블
a_idx (primary key) | b_idx | a_name |
1 | 1 | 그룹명 |
B 테이블
b_idx | b_name | b_description |
1 | 아무개 | 프로그래머 |
db.A.hasMany(db.B, { foreignKey: 'b_idx', as: 'B' })
db.B.belongsTo(db.A, { foreignKey: 'b_idx', as: 'A' })
A 테이블의 a_idx가 기본 키로 설정되어 있고, a_idx가 아닌 b_idx를 참조하려 foreignKey: 'b_idx' 값을 줬더니, 멋대로 a_idx 값을 참조했다. sourceKey: 'b_idx'까지 추가하여 해결하였다.
db.A.hasMany(db.B, { foreignKey: 'b_idx', sourceKey: 'b_idx' as: 'B' })
db.B.belongsTo(db.A, { foreignKey: 'b_idx', as: 'A' })