ABOUT ME

얼죽개(얼어 죽어도 개발자가 되고싶어)

Today
Yesterday
Total
  • 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 관계를 중간테이블을 하나 둠으로써 해결할 수 있었습니다.

     

Designed by Tistory.