<aside> 🤔
ex) 계좌 입장에서는 여러개의 계좌가 하나의 사용자에게 연결되있기 때문에 ManyToOne()
</aside>
<aside> 🤔
Post 입장에서는 여러개의 Post가 하나의 유저에게 귀속되기 때문에, ManyToOne()
</aside>
// 1. postModel
export class PostModel {
@PrimaryGeneratedColumn()
id: number;
// 포스트 모델 입장에서는 다수이기 때문에 ManyToOne
@ManyToOne(() => UserModel, (user) => user.posts)
author: UserModel;
@Column()
title: string;
}
// 2. userModel
export class UserModel {
@PrimaryGeneratedColumn()
id: number;
// 유저 입장에서는 유저 하나가 여러개의 Post를 가질수 있음.
@OneToMany(() => PostModel, (post) => post.author)
// 다수의 PostModel을 배열로 가질 수 있음.
posts: PostModel[];
}
<aside>
💡 One to One에서 했던것처럼, @JoinColumn
을 할 필요가 없다.
</aside>
one to Many, Many to One 관계에서는 Many to One
입장에서 자동으로 아이디를 가지게 된다. (여기서는 PostModel에서 foreign-key
를 가지게 됨.
상대 테이블의 ID를 가지고 있는것은Many to One
입장의 테이블에서 가지고 있게 된다. (ex. postModel)
생각해보면,
get 해올때
@Get('users')
getUsers() {
return this.userRepository.find({
relations: {
profile: true,
posts: true,
},
});
}
<aside> 💡 Many to One이 되는 테이블에서 상대방 테이블의 아이디를 가지고 있다.
</aside>