Closed ddubbu closed 3 years ago
@aesopfrom0 님 제가 저번에 이해한 바로 도움을 드리자면, im-sprint-shotly-mvc 에서 1:N 구현해본 건데 1(users) : N(urls)
요점은, migration은 SQL 에 적용하기 위해, models 은 ORM( Object Relational Mapping) 적용을 위해 모두 변경해줘야한다는 점입니다. 첫번째 파일 : migration 파일 2~3번째 파일 : models 하위 파일
2월 9일 스키마 구조 확정
모델에서 belongs to , hasmany등의 관계를 잘 설정해야 한다.
model.findOne등의 쿼리를 날릴때 위의 association설정한 것들이 쿼리에 합쳐져서 날아간다.
예를들어 로그인을 하기위해 만들어진 쿼리
users
.findOne({
where: {
email,
password,
},
만 하더라도
user model 에
this.belongsTo(models.boards,{
foreignKey : 'admin_userid'
})
boards model에 this.hasOne(models.users)이렇게 설정되어 있다면
sequelize가
"SELECT id
, username
, password
, email
, picture
, createdAt
, updatedAt
, boardId
, admin_userid
FROM users
AS users
WHERE users
.email
= '1@demo.com' AND users
.password
= 'password123@' LIMIT 1;" 이렇게 쿼리를 날린다.
이 문제를 model users에서
this.belongsTo(models.boards,{
foreignKey : 'admin_userid'
})
```js
를 없애고
model boards에서
this.hasOne(models.users,{ foreignKey : { name : 'id' } });
이렇게 수정해주었다.
Task Card
Assignee: @aesopfrom0
Job Description
결과물