inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

3-10. 실제 예시 코드로 작성하기 -2

테이블 의존 질문입니다

해결된 질문

70

딩띵

작성한 질문수 27

0

안녕하세요 딩코딩코님

28. 3-10. 실제 예시 코드로 작성하기 -2 강의 16:30초에서 order_items가ch3_improved_orders 에 의존하도록 구조가 변경이 되어야 할 것이라고 하셨는데

ch3_improved_orders가 items를 통해 데이터가 생성이 되는것이므로 ch3_improved_orders 가 items에 의존 되는것이 아닌가요??

items가 왜 ordrs에 의존인건지 이해가 가지 않습니다 ㅜㅜ..

java spring mysql redis 이력서

답변 2

0

딩코딩코

안녕하세요 딩띵님!

 

아하 생각해보니 두가지 의존성이 있는 것 같습니다!

  1. improved_orders의 total_items 칼럼을 생성하기 위해서 order_items 를 전부 조회해야 하기 때문에 improved_orders -> items 에 대한 의존 필요

  2. order_items 와 improved_orders를 조인하기 위해서 order_items에 order_id 가 있어야 하므로, order_items -> improved_orders 에 대한 의존 필요

 

저는 여기서 2번에 대한 의존을 말한 거였는데, 1번에 대한 의존성도 존재하기 때문에 서로에게 의존성이 존재하는 구조라고도 볼 수 있을 것 같습니다!

저는 요렇게 이해했는데 딩띵님이 질문하신 의도가 이게 맞을까요?_?

0

딩띵

안녕하세요 딩코님


전체 갯수를 조회할 때는 order_items.order_id를 이용해서 improved_orders와 조인을 해야 하므로 order_items → improved_orders 의존이라고 이해했습니다. 제 이해가 맞을까요?

improved_orders는 order_items의 집계 결과를 저장한 것이기 때문에 데이터 의존성 관점에서는 improved_orders → order_items 방향이라고 생각되어서 헷갈립니다..

1

딩코딩코

딩띵님 좋은 질문 해주셔서 감사합니다.

간단하게 정리하면 보는 관점이 달라서 헷갈리는 거예요.

데이터 관점으로는 딩띵님이 맞습니다!

 

order_items (원본) → improved_orders (집계결과)

 

improved_orders는 order_items를 모아서 만든 거니까, improved_orders가 order_items에 의존하죠.

 

그런데 강의에서 말한 부분은 조인 관점입니다.

SELECT * FROM order_items oi
JOIN improved_orders io ON oi.order_id = io.order_id

order_items에 order_id(외래키)가 있어야 조인이 되니까, order_items가 improved_orders에 의존한다고 본 거예요.

 

즉, 딩띵님 이해가 정확합니다.

데이터 흐름으로 보면 improved_orders → order_items 의존이고, 이게 더 본질적인 의존성입니다! 강의에서는 조인할 때의 구조적 관점을 말한 건데, 딩띵님이 생각한 데이터 의존성이 핵심적인 관점이라서, 두가지 차이점이 있구나 정도로 봐주시면 좋을 것 같습니다

이렇게 추가 질문 해주셔서 감사합니다!! 좋은 하루 보내세요

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 딩띵님.

질문 주신 부분에서는 데이터베이스 테이블 간의 의존성 문제를 다루고 계시군요. 흔히 테이블 설계 시, 주요 테이블과 부가적 데이터를 저장하는 테이블 간의 관계를 어떻게 설정할 것인지 고민할 수 있습니다.

의존 관계의 이해:

  1. 주문과 주문 항목의 관계:

    • 일반적으로, order_items 테이블은 각 주문(orders)에 대해 여러 개의 아이템을 저장합니다. 즉, 하나의 주문은 여러 개의 주문 항목으로 구성되죠.
    • 이러한 구조에서 order_itemsorders에 의존한다는 것은, order_items 테이블이 orders 테이블에 있는 order_id를 참조하여 각 항목이 어떤 주문에 속하는지를 구분한다는 의미입니다.
  2. 데이터 흐름:

    • 주문(orders)이 있기에 그 주문과 관련된 항목들(order_items)이 있는 식입니다. 따라서 order_itemsorders를 참조(의존)하는 구조가 흔히 사용됩니다.
    • 이것은 마치 부모-자식 관계처럼, 부모(orders)가 없는 자식(order_items)은 존재할 수 없음으로 이해할 수 있습니다.

이러한 관계는 데이터 무결성을 유지하면서 데이터베이스의 효율성을 높이는 데 도움이 됩니다.

혹시 더 구체적인 사항이나 다른 예시가 필요하시면, 다음의 질문 및 답변 게시글에서 유사한 논의가 된 적이 있으니 참고하세요:
- 질문 제목: 데이터베이스 테이블 간의 관계 설정

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

조회속도 개선에서 더 개선하는 방법이 궁금합니다.

0

44

2

Build 관련 문제 (테스트 관련 문제)

0

44

2

인덱스 관련 질문 있습니다.

0

75

2

비관적 락 구현 방식 문의 건

0

82

2

외부 api 처리 방안에 대하여 궁금한 점이 있습니다.

0

93

2

네임드 락 사용 시 커넥션 풀을 분리하는 방법에 대한 질문

0

88

2

이벤트) 백엔드 기술면접 실전문제집

0

107

2

로컬에서 테스트 한 결과를 이력서에 써도 괜찮을까요?

0

134

2

데드락 발생 시, 외래 키를 제거하는 방법 관련 질문

0

91

2

Redis 캐싱을 도입하는데 db조회와 성능이 차이가 거의 없습니다.

0

115

2

k6 부하테스트 중인데 개선 전 성능이 너무 안나와서 고민

0

142

2

강의와 성능수치 비교

0

105

2

13강 강의 뒷부분의 과제 안내부분은 어디있나요?

0

52

2

이벤트 참가자 수 증가 후, save 메서드 호출 코드 질문

0

66

2

[수업 자료 질문] Cache Aside의 특징 문의

0

89

2

[수업자료 문의] RedisTemplate으로 SETNX 시 리턴값 문의

0

83

2

블로그에 학습 내용 정리 포스트를 올려도괜찮나요?

0

113

2

멀티스레드 상황인데 currentParticipants 가 AtomicInteger가 아닌 이유?

0

91

3

클라우드 환경 배포시 부하 테스트 방식에 대하여

0

153

2

k6 dashboad 안나오는 상

0

119

2

2-4 도커 빌드 에러가 계속 납니다.

0

302

2

AWS EC2에 도커 컨테이너가 동작하지 않을 때 확인 해야하는 것

0

118

2

성능 측정시

0

114

2

API 별 실행 쿼리 모니터링 구현 질문 있습니다.

0

87

2