일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바ORM표준프로그래밍
- DB방언
- 멱등활용
- hibernate.dialect
- RFC723x
- 김영한JPA
- 네이버로그인API
- gitreset
- Git
- org.apache.ibatis.binding.BindingException
- @Table
- 캐쉬가능
- 데이터베이스 방언
- 매핑정보가없는필드
- 무상태프로토콜
- HTTPMESSAGE
- Transaction not successfully started
- @Entity
- JPA
- Invalid bound statement (not found)
- gitrevert
- KAKAOLOGINAPI
- 네이버 연결된 서비스
- SpringBoot
- ERROR TYPE : org.apache.ibatis.binding.BindingException
- anyMatch
- http
- fixedDelay
- initialDelay
- HTTP3
Archives
- Today
- Total
twocowsong
다 대 다 [N : N] 본문
관계형 DB는 정규화된 테이블 2개로 N : N 관계를 표현할 수 없습니다.
그래서 보통은 N : N 관계를 1 : N, N : 1 관계로 풀어내는 연결 테이블을 사용합니다.
예를 들어 회원들은 상품을 주문합니다.
반대로 상품들은 회원들에 의해 주문됩니다.
한 상품은 여러회원들에게 주문되고, 한 회원은 여러개의 상품을 주문함으로 둘은 N : N 관계를 가집니다.
따라서 회원 테이블과 상품 테이블만으로는 이 관계를 표현 할 수 없습니다.
중간에 연결 테이블을 추가해서 사용해야 합니다.
아래의 그림처럼 MEMBER_PRODUCT 연결 테이블을 추가했습니다.
테이블을 사용해서 N : N 관계를 1 : N, N : 1 관계로 풀어 낼 수 있습니다.
이 연결 테이블은 회원이 주문한 상품을 나타냅니다.
그런데 객체는 테이블과 다르게 객체 2개로 N : N 관계를 만들 수 있습니다.
예를들어 회원 객체는 컬렉션을 사용해서 상품들을 참조하면되고 반대로 상품들도 컬렉션을 사용해서 회원들을 참조하면 됩니다.
@ManyToMany를 사용하면 이런 N : N 관계를 편리하게 매핑할 수 있습니다
'IT > JPA' 카테고리의 다른 글
다 대 다 : 양방향 (0) | 2022.06.26 |
---|---|
다 대 다 : 단방향 (0) | 2022.06.21 |
대상 테이블에 외래 키 (0) | 2022.06.19 |
주 테이블 외래 키 (0) | 2022.06.19 |
일 대 일 [ 1 : 1 ] (0) | 2022.06.18 |