• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

22.11.25 12:20 작성 조회수 1.1k

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에 값을 넣지 않는 경우를 방어할 수 없는 단점이 있습니다.

감사합니다.