테이블 조인을 하는 이유

bird.j·2021년 4월 29일
0

SpringBoot

목록 보기
18/22

board에 username이 필요한 것은 자명하다.
그런데 우리 프로젝트에서 jwt 토큰으로 사용자를 식별하기 때문에 board를 user와 join하지 않고, board에 username 컬럼을 만들어서 token에서 빼낸 user정보(username)로 set하여 board의 username에 값을 넣어주는 방식 대신에 굳이 user를 join해야 하는 이유가 궁금했다.

위와 같은 방법에서 생기는 문제점은 username은 변경이 가능하다. 따라서 username은 user를 대표할 수 있는 고유한 값이 아니기 때문에 board의 컬럼으로 만드는 것은 문제가 있다.
또한 username이 변경될 경우, 원래 user테이블의 username을 전부 바꿔주고, board의 username도 바꿔주어야 한다.
그러나 user테이블 자체를 join한다면, user id는 고유하기 때문에 이를 통해 user를 식별할 수 있고, user의 username도 쉽게 get해올 수 있다.

  • 추가
    애초에 다른 객체의 일부만을 가져와서 컬럼으로 지정하는 것은 객체지향적이지 못함..!

0개의 댓글