inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

OneToMany 관계 설정 질문드립니다.

해결된 질문

302

이승훈

작성한 질문수 49

0

 안녕하세요 조현영님. 질문이 계속 쏟아져나오네요! 첫 질문 때 이야기 했던 사용자(UserEntity)와 이미지(ImageEntity)간의 관계는 OneToMany 관계인것에 대해 질문하려합니다. UserEntity에 image라는 컬럼을 두고 아래 처럼 관계 설정 하였습니다.

// user.entity.ts
@OneToMany(() => ImagesEntity, (join) => join.imageForigenKeyForUser)
  @JoinColumn()
  image?: ImagesEntity;

아래는 ImageEntity의 관계 설정입니다.

// image.entity.ts
@ManyToOne(() => UserEntity)
  imageForigenKeyForUser: string;

질문 1. mysql 워크밴치등으로 Image테이블을 보면 imageForigenKeyForUserId라는 컬럼이 생성되었습니다. 이렇게 컬럼이름 + Id가 붙은 컬럼을 가상 컬럼이라 부르는것이 맞을까요?

질문 2. 만약 위 질문이 맞다면 원래 제가 예상한것은 User테이블에 imageId라는 가상 컬럼이 생기는것을 예상했는데 User테이블에는 가상 컬럼이 존재하지가 않네요. 위 코드에서 관계 설정이 잘못된 것일까요? 제가 이전에 상품과 이미지 관계를 OneToOne으로 맺었을 때는 제가 원한대로 (JoinColumn()이 붙은쪽에 컬럼이름 + Id가 붙은 가상 컬럼이 생성됨) 관계가 형성 되었습니다. 아래 코드를 사용해서요.

// product.entity.ts
@OneToOne(() => ImagesEntity, (join) => join.imageForigenKeyForProduct)
  @JoinColumn()
  image: ImagesEntity;
 
// image.entity.ts
  @OneToOne(() => ProductEntity)
  imageForigenKeyForProduct: string;

질문 3. 한쪽에서 OneToMany 관계로 시작하면 받는쪽은 ManyToOne이 맞죠?

ex) @OneToOne() Image => @ManyToOne() ImageForigenKey

질문이 많은거 같은데 시간 나실 때 천천히 봐주시면 감사할거 같습니다.

nodejs express NestJS TypeORM

답변 1

0

제로초(조현영)

1. 아뇨 imageForeignKeyForUserId는 실제로 존재하는 컬럼이므로 가상컬럼이 아닙니다. 그냥 외래키 컬럼입니다. imageForeignKeyForUser가 가상 컬럼이죠.

2. UserTable에 이미지 아이디가 안 생깁니다. 일대다에서는 다에 외래키컬럼이 생기는 것입니다. 이미지에 유저 아이디가 기록되어야죠.

3. 네 맞습니다.

0

이승훈

아 OneToMany => ManyToOne 관계는 많은 쪽에 외래키가 생기는것이군요. 그러면 user쪽에서 image에 접근하려면 어떻게 해야 할까요? user에는 외래키가 없어서 접근 방법을 모르겠어요. 사용자와 이미지의 관계라 이미지를 1, 사용자를 n으로 두기에도 묘한 상황이라서요. 

0

제로초(조현영)

user에서도 image 가상 컬럼 생성할 수 있습니다. 강좌에서도 했습니다. user와 workspace로요.

0

이승훈

약간 방법을 알아낸거 같네요 감사합니다!

강의자료는 어디서 다운받나요?

0

110

3

질문 있습니다.

0

294

3

코드 편집기 확장 프로그램

0

209

2

(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?

0

143

2

(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문

0

166

3

로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.

0

152

2

로그인방법이 고민됩니다.

0

190

2

yarn seed 명령어 실행 시 데이터 삽입 안됨

0

296

4

yarn run db:create 시에 발생하는 데코레이터 오류

0

242

2

npm run db:create 시에 발생하는 decorating 오류

0

231

2

RxJS 디버깅 질문 있습니다.

0

187

3

CacheManager에 대해 질문 있습니다.

0

173

2

로깅은 어떻게 하는게 효율적일까요?

0

224

1

CORS 질문 있습니다.

0

417

2

쿠키 옵션에 대해서 질문 있습니다.

0

184

2

로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??

0

447

1

401 unauthorized문제

0

286

1

가드의 장점에 대해서 질문이 있습니다.

0

225

1

로그 관리에 대해 질문 있습니다.

0

252

2

CORS 에러 질문 있습니다.

0

318

2

배포 환경 DB 연결 질문 있습니다.

0

411

2

socket io 미 연결 문제 (nest & flutter)

1

1154

3

no elements in sequence 에러 관해서 질문이 있습니다.

0

454

1

start:dev-backup으로 돌리면 핫 리로딩이 되요 정상인가요?

0

322

1