프로젝트 ERD 설계 도중 M:N(다대다) 관계를 표현해야 했는데, 다대다 관계를 ERD에서 어떻게 표현하는지 이번에 처음 알아서 기록하려 한다.


다음 두 테이블은 서로를 M:N관계로 참조해야 한다.
해당 상황에서 M:N관계를 논리적으로는 표현할 수 있지만 2개의 테이블만으로 구현해내는 것은 불가하기 때문에 소지 여부를 위한 테이블이 별도로 필요하다. 쉽게 말해서, 해당 자녀가 해당 아이템을 가지고 있는가?라는 "소지"에 대한 정보를 담는 테이블이 있어야 한다는 것이다.
이 이슈를 해결하기 위해선, 오롯이 "소지"에 대한 정보를 담고 있는 테이블이 하나 더 필요하다.
이를 매핑 테이블이라 한다.

따라서 해당 자녀의 id가 해당 item의 id를 "소지"하고 있다는 개념으로 매핑 테이블을 활용 가능하다 !
매핑 테이블을 사용할 때 주의할 점은
논리적으로 생각할 땐, 매핑 테이블은 생각하지 않는다는 것이다.
이렇게 논리적으론, 매핑 테이블과 관계를 생각하지 않아야 한다.
매핑 테이블은 오롯이 논리적 관점이 아닌 구현을 위해 만들어낸 테이블이다.
ERD 설계를 하다보니 모르는 것에 대해 많이 알게된다.
논리적 관점과 실제 구현을 위한 장치를 구분하여 생각하는 방법을 배울 수 있었다.