Spring

8. 스프링 / 2021-07-18 (다대다 [N:M])

공대키메라 2021. 7. 18. 22:42

이 부분은 편히 공부해도 된다!

 

그냥 보라네! 이렇게 쓰면 안된다고 한다.

 

 

 

@ManyToMany 사용을 해서 지정 가능

 

근데 들어가기 전에 알아야 할 것은 쓰지 말라는거임 ! ㅋㅋ

여기서 테이블에 관한 이야기인데

 

ORDER 테이블으 Member_ID 랑 Product_ID를 참조해서

복합키로 사용하고 있다.

 

처음 설계상에서는 이렇게 하면 깔끔하고 장점이 많은데

 

어플리케이션이 이제 업데이트가 되고 수정이 되는 과정에ㅐ서

 

받아온 FK가 변동될 수 도 있다. 

 

그렇기에 ORDER 테이블에 그 테이블 만의 PK를 별도로 생성을 해주면

 

후에 관리를 하는데 유용하다고 해서 Teacher는 이렇게 많이 쓴다고 한다.

 

그러면 이제 실전 예제 3으로 한번 넘어가보자!

 

실전 예제 3 - 다양한 연관관계 매핑

 

 

 

근데 그냥 보고 안햇음

왜냐? 어짜피 이렇게 하면 안돼 ㅠㅠ

 

고급 매핑

 

상속관계 매핑

 

관계형 데이터베이스는 상속 관계가 없다.

슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사

상속관계 매핑 : 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑

 

 

  • 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법

 

  • 각각 테이블로 변환 => 조인전략
  • 통합 테이블로 변환 => 단일 테이블 전략
  • 서브타입 테이블로 변환 => 구현 클래스마다 테이블 전략

 

조인하는 방식으로 문제를 해결하면 데이터가 굉장히 정교화되서 들어감

카테고리도 세분화해서 들어감. 우리는 이것으로 우선 할것임

 

 

 

흠... 여러 방법으로 테이블을 구성 할 수 있는데 뭐가 좋을까?

 

결론은 상속관계 매핑은 DB에 슈퍼타입, 서브타입이라는 논리 모델링 기법을 어떤 3가지 방법으로 구현을 하던

다 매핑을 하도록 지원해준다. 

 

 

 

 

구현 클래스마다 테이블 전략은 사용하면 안됌