상속관계 맵핑2(장단점 정리)

Mina Park·2022년 9월 10일
0

1. 조인 전략

  • 장점
    • 테이블이 정규화되어 있음
    • 외래키 참조 무결성 제약조건 활용 가능
    • 저장공간 효율화
  • 단점
    • 조회시 조인 많이 사용(성능 저하 가능성), 쿼리 복잡도 증가
    • 저장시 insert 쿼리 2번 호출

📌기본적으로 실무에서 정석으로 사용되는 전략(객체와 가장 잘 맞고 깔끔한 설계)

2. 단일 테이블 전략

  • 장점
    • 조회 성능이 빠름(조인이 필요 없으므로)
    • 단순한 조회 쿼리
  • 단점
    • 자식 엔티티가 맵핑한 컬럼은 모두 null 허용
    • 하나의 테이블에 모든 것을 저장하므로 테이블이 커질 수 있어 오히려 조회 성능 저하될 수 있음

3. 구현 클래스마다 테이블 전략

  • 장점
    • 서브 타입을 명확히 구분해서 처리할 때 효과적
    • not null 제약조건 사용 가능
  • 단점
    • 여러 자식 테이블을 함께 조회할 때 성능 느림(모든 테이블을 union)
    • 자식 테이블을 통합해서 쿼리하기 어려움

📌실무에서는 사용을 지양해야하는 전략(ORM 전문가, DB 설계자 모두)


📌 전략사용 관련 실무에서의 적용 팁

  • 기본적으로 조인전략을 채택
  • 만약 비즈니스적으로 중요도나 복잡도가 상대적으로 낮을 경우에는 단일 테이블 전략 채택

0개의 댓글