조인문을 꼭사용해야만 하는 경우를 읽고 생각해보며 적절하게 사용해보자

 

유저: 인덱스, 아이디, 닉네임, 비밀번호, 이메일, 주소

게시판: 인덱스, 유저닉네임, 제목, 내용

 

위와 같이

유저테이블과 게시판테이블이 있다고 가정하자

유저가 게시판을 작성할때마다 게시판에 유저닉네임이 필요하다

여기서 유저가 닉네임을 변경한다면 게시판의 작성자의 이름이 변경되었기 때문에

게시판에 바뀐 데이터를 업데이트하는 쿼리를 보내야하는 일이 벌어진다

 

사용하지 않아도 괜찮은 경우는 뭘까?

 

1.

유저: 인덱스, 아이디, 비밀번호, 이메일, 주소

게시판: 인덱스, 유저아이디, 제목, 내용

 

위와같이

테이블이 구성되었다고 가정하고

만약 유저의 아이디를 변경할 수 없도록 한다면 유저의 다른 데이터가 변해도

게시판에 업데이트 쿼리를 날릴 필요가 없다

 

2.

유저: 인덱스, 이름, 아이디, 비밀번호, 이메일, 주소

주문: 인덱스, 이름, 주소, 결제금액, 시간, 배송상태

 

위와같이

테이블이 구성되었다고 가정하고

이름과 주소가 겹친다고 조인을 하면 안된다

주문같은 경우는 나중에 주문조회를 할 수 있는데 조인을 해버리면

3달전에 이사를 간 A는 이사가기전에 주문한 물건을 조회했는데

이사 가기 전의 주소가 나와야하는데

이사한 주소로 배송을 보냈다고 결과가 나오게 되어 혼동을 주게된다

 

 

조인을 사용하기 이전에 데이터를 어떻게 사용할건지 깊게 생각해보자

 

+ Recent posts