다대다

· JPA
데이터베이스 테이블의 연관관계를 설계하는 방법은 크게 2가지다. 조인 컬럼(외래 키) 사용 조인 테이블(브릿지 테이블) 사용 조인 컬럼 사용 테이블 간에 관계는 주로 조인 컬럼이라 부르는 외래 키 컬럼을 사용해서 관리한다. 연결할 테이블이 많아 질수록 컬럼이 많아질 수 있다. 조인한 테이블이 필수일때는 INNER JOIN(NOT NULL)을, 필수가 아닐때는 OUTER JOIN(NULL)으로 조인한다. 조인 테이블 사용 조인 테이블을 생성해 연결할 테이블들의 기본 키들을 엮어서 연결한다. 나는 보통 브릿지 테이블로 부르고 다대다 연결을 할때, 다른 테이블에 조인이 추가될 가능성이 높을때 주로 사용한다. 테이블마다 필요한 정보만 저장할 수 있어서 이 방법을 선호하지만 조인 테이블이 많아져 SQL이 느려질 ..
· JPA
엔티티의 연관관계를 설정할때 주의해야할 부분들이 있다. 다중성 다중성에는 다대일(@ManyToOne) 일대다(@OneToMany) 일대일(@OneToOne) 다대다(@ManyToMany) 가 있다. 다중성을 판단하기 어려울 때는 반대방향을 생각해 보면 된다. 참고로 일대다의 반대 방향은 항상 다대일이고, 일대일의 반대방향은 항상 일대일이다. 일대일 관계에서는 외래키를 어느 테이블에서도 가질 수 있다. 어느 테이블이든 외래키 하나만 있으면 양쪽으로 조회할 수 있다. 주 테이블에 외래키가 있으면 주 테이블이 외래키를 가지고 있으므로 주 테이블만 확인해도 대상 테이블과 연관관계가 있는지 알 수 있고, 대상 테이블에 외래키가 있을때는 일대일에서 일대다로 변경할 때 테이블 구조를 그대로 유지할 수 있다. 단방향,..
beekei
'다대다' 태그의 글 목록