Many-to-one , One-to-many 는 다음과 관계를 말한다.User 와 Photo 엔티티 예시import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from "typeorm"
import { User } from "./User"
@Entity()
export class Photo {
@PrimaryGeneratedColumn()
id: number
@Column()
url: string
@ManyToOne(() => User, (user) => user.photos)
user: User
}
import { Entity, PrimaryGeneratedColumn, Column, OneToMany } from "typeorm"
import { Photo } from "./Photo"
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number
@Column()
name: string
@OneToMany(() => Photo, (photo) => photo.user)
photos: Photo[]
}
User 의 photos 프로퍼티에 @OneToMany 를 추가하고 Photo 를 대상 관계 타입으로 지정하였다.@ManyToOne, @OneToMany 관계의 경우 @JoinColumn 을 생략할 수 있다.@OneToMany 는 @ManyToOne 없이 존재할 수 없다.@OneToMany 를 사용하려면 @ManyToOne 이 필수적이다.@ManyToOne 관계만 고려한다면 @OneToMany 는 필수적이지 않다.@ManyToOne 을 설정한 엔티티는 “관계id”와 FK(외래키)를 포함하게 된다. 
@ManyToOne 을 설정한 Photo 테이블은 userId 라는 칼럼을 FK(외래키)로 포함하고 있다.@ManyToOne 을 설정한 엔티티에 대상 관계 엔티티의 PK가 담기는 이유가 뭘까 생각해 봤는데, 아래와 같은 이유라고 볼 수 있을 것 같다.
userID 칼럼을 FK로 포함하는 것이 효율적이다.User 테이블이 photoId 라는 칼럼으로 FK(외래키)를 포함하게 되면 데이터 중복이 발생하므로 비효율적이다.