인프런 커뮤니티 질문&답변

비가싫어요님의 프로필 이미지
비가싫어요

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

일대일 [1:1]

주 테이블 외래키 장,단점에 관해 질문이 있습니다.

작성

·

1.4K

1

IMG_0137.png

"주 테이블만 조회해도 대상 테이블에 데이터가 있는지 확인 가능" 이 부분을 저는 주 테이블만 봐도 일단 외래키가 있다는 것은 대상 테이블에 뭔가가 있다는 것이니까 대상 테이블의 데이터 존재 유무 확인이 가능하다 라고 이해를 하였고

 

"값이 없으면 외래 키에 null 허용" 이 부분을 저는 OneToOne 관계이므로 한 사람은 라커 하나를 사용할 수 있고 라커도 한 사람에게 할당될 수 있으므로 주 테이블의 외래키인 LOCKER_ID가 null 이라는 것은 이 사람에게 할당될 라커가 없고 고로 대상 테이블에도 데이터가 없다 라고 이해를 했습니다.

 

이런 상황에서 두 가지 질문이 있습니다.

  1. 제가 이해한 것이 맞을까요?

  2. 테이블 칼럼의 값이 null인 것이 왜 단점일까요?

답변 1

4

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. JUNN님

  1. 제가 이해한 것이 맞을까요?

    1. 네 맞습니다^^

  2. 테이블 칼럼의 값이 null인 것이 왜 단점일까요?

    1. 이 단점은 반대 케이스와 비교를 해서 단점인 부분인데요. 대상 테이블에 외래키의 경우 null 허용 없이 처리를 완료할 수 있습니다. (Locker가 없는 경우 대상 테이블 자체에 데이터가 들어가지 않으니까요)

    2. 테이블에 컬럼이 null을 허용하면 혹시 실수로 FK에 값을 넣지 않는 경우를 방어할 수 없는 단점이 있습니다.

감사합니다.

비가싫어요님의 프로필 이미지
비가싫어요

작성한 질문수

질문하기