티스토리 뷰

개발일지/TIL

DB의 연관관계 이해

OH!Lee 2022. 7. 18. 20:46
반응형

DB 의 연관관계

  • JPA 가 제공하는 연관관계는 결국 DB 의 연관관계를 표현하기 위함
  • 따라서 먼저 DB 의 연관관계를 이해해야 함
  • DB 의 연관관계는 비즈니스 요구사항에 맞춰 이루어짐

 

음식 주문앱 DB 설계 예제

 👉 예를 들어, 우리가 음식 주문앱 DB를 설계한다고 가정해볼게요! 일단 "고객이 1개의 음식을 주문할 수 있다"라는 요구사항을 받았다고 해봅시다.

일단 각 주체의 테이블 설계가 필요

  • 고객 (User) 테이블

  • 음식 (Food) 테이블

 

  1. 연관 관계 고민
    • 고객이 음식 주문 시, 주문 정보는 어느 테이블에 들어가야 할까?
    • 고객 테이블? 음식 테이블??
    • Tip) 테이블 설계 시 실제 값을 넣어봄
  • 시도1) "고객 테이블" 에 주문 정보를 넣어보자!!

  • 문제점: 회원 중복

  • 시도2) "음식 테이블" 에 주문 정보를 넣어보자~!!
    • 그럴 듯 해 보이지만.. 먹깨비(userID = 2)가 '후라이드치킨'을 하나더 시킨다면??

  • 문제점: 음식 중복

  • '주문'을 위한 테이블이 필요 → Order 테이블 추가

 

  • 회원 1명은 주문 N개를 할 수 있다.
    • 회원 : 주문 = 1 : N 관계
  • 음식 1개는 주문 N개에 포함될 수 있다.
    • 음식 : 주문 = 1 : N 관계
  • 결론적으로
    • 회원 : 음식 = N : N 관계
반응형

'개발일지 > TIL' 카테고리의 다른 글

HashSet 이란?  (0) 2022.07.20
JPA 연관관계, Spring Dada JPA  (0) 2022.07.18
JPA 영속성 컨텍스트 이해  (0) 2022.07.18
JPA 이해  (0) 2022.07.18
JPA  (0) 2022.07.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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 31
글 보관함