-
1대N, N대1, N대M 관계에 대해 알아보자프로그래밍 언어/Spring 2023. 11. 20. 21:36
앞서 Entity를 만들고 ERD를 그려보면서 서로 다른 두 데이터의 연관관계에 대해 살펴보았습니다.
이번엔 그 연관관계의 심화과정이라 할 수 있는 1대N, N대1, 그리고 N대M관계에 대해 알아보겠습니다.
1대N 관계
우리가 휴게소에서 음식을 주문한다고 가정해봅시다.
고객이 음식을 주문할 때, 주문 정보는 고객 테이블에 들어가야할까요?
아님 음식 테이블에 들어가야할까요?
일단, 한 명의 고객이 여러 음식을 시킬 수 있으니 고객이 1, 음식을 N으로 하고 1대N 관계가 성립한다고 볼 수 있습니다.
아래 표와 같이 주문이 들어왔다고 생각해봅시다.
주문번호id 이름 음식id order0001 민수 food0001 order0002 영희 food0001 order0003 민수 food0002 고객 테이블에 주문번호를 추가시켰더니 민수가 중복되는 결과가 생겼습니다.
N대1 관계
그렇다면 음식이 고객을 여러명 가질 수 있다고 가정합니다.
주문번호id 음식이름 가격 고객id order0001 라면 5000 user0001 order0002 라면 5000 user0002 order0003 우동 6000 user0001 아까 전과 마찬가지로 음식이 중복되는 결과가 발생했습니다.
N대M 관계
이번엔 새로운 테이블을 추가해보겠습니다.
고객
고객id 이름 user0001 민수 user0002 영희 음식
음식id 음식이름 가격 food0001 라면 5000 food0002 우동 6000 주문
주문id 고객id 음식id order0001 user0001 food0001 order0002 user0002 food0001 order0003 user0001 food0002 1:N, N:1관계로는 표현하기 힘들었던 고객과 음식 사이의 N:M 관계를 중간테이블을 하나 둠으로써 해결할 수 있었습니다.
'프로그래밍 언어 > Spring' 카테고리의 다른 글
API 게이트 웨이에 대해 파헤치기 (0) 2024.08.06 정규 표현식 정리 (0) 2023.11.29 Spring MVC 간단 정리 (1) 2023.11.20 (2023-11-08 TIL) IoC와 DI에 대하여 (0) 2023.11.08 (2023-11-07자 TIL) 3계층 아키텍쳐에 대해 알아보자 (0) 2023.11.07