다대다(M:N) 관계는 한 엔티티의 한 행이 다른 엔티티의 여러 행과 관계를 맺을 수 있고, 반대로도 마찬가지인 경우를 말한다.
예시:
이를 카디널리티로 표현하면 다음과 같다.
주문 1 → 여러 상품 → 1:N상품 1 → 여러 주문 → M:1관계형 데이터베이스는 기본적으로 FK를 이용한 1:1, 1:N, N:1 관계는 잘 표현하지만, 직접적인 M:N 관계는 지원하지 않는다.
문제는 두 가지다.
주문 수량, 주문 당시 가격 같은 정보가 필요하지만, 주문 테이블에도, 상품 테이블에도 자연스럽게 들어가지 않는다.그래서 M:N 관계를 해결하기 위해서는 **새로운 엔티티(테이블)**이 필요하다.