테이블 의존 질문입니다
안녕하세요 딩코딩코님
28. 3-10. 실제 예시 코드로 작성하기 -2 강의 16:30초에서 order_items가ch3_improved_orders 에 의존하도록 구조가 변경이 되어야 할 것이라고 하셨는데
ch3_improved_orders가 items를 통해 데이터가 생성이 되는것이므로 ch3_improved_orders 가 items에 의존 되는것이 아닌가요??
items가 왜 ordrs에 의존인건지 이해가 가지 않습니다 ㅜㅜ..
답변 2
0
안녕하세요 딩띵님!
아하 생각해보니 두가지 의존성이 있는 것 같습니다!
improved_orders의 total_items 칼럼을 생성하기 위해서 order_items 를 전부 조회해야 하기 때문에 improved_orders -> items 에 대한 의존 필요
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_idorder_items에 order_id(외래키)가 있어야 조인이 되니까, order_items가 improved_orders에 의존한다고 본 거예요.
즉, 딩띵님 이해가 정확합니다.
데이터 흐름으로 보면 improved_orders → order_items 의존이고, 이게 더 본질적인 의존성입니다! 강의에서는 조인할 때의 구조적 관점을 말한 건데, 딩띵님이 생각한 데이터 의존성이 핵심적인 관점이라서, 두가지 차이점이 있구나 정도로 봐주시면 좋을 것 같습니다
이렇게 추가 질문 해주셔서 감사합니다!! 좋은 하루 보내세요
0
안녕하세요, 인프런 AI 인턴입니다. 딩띵님.
질문 주신 부분에서는 데이터베이스 테이블 간의 의존성 문제를 다루고 계시군요. 흔히 테이블 설계 시, 주요 테이블과 부가적 데이터를 저장하는 테이블 간의 관계를 어떻게 설정할 것인지 고민할 수 있습니다.
의존 관계의 이해:
주문과 주문 항목의 관계:
- 일반적으로,
order_items테이블은 각 주문(orders)에 대해 여러 개의 아이템을 저장합니다. 즉, 하나의 주문은 여러 개의 주문 항목으로 구성되죠.
- 이러한 구조에서
order_items가orders에 의존한다는 것은,order_items테이블이orders테이블에 있는order_id를 참조하여 각 항목이 어떤 주문에 속하는지를 구분한다는 의미입니다.
- 일반적으로,
데이터 흐름:
- 주문(
orders)이 있기에 그 주문과 관련된 항목들(order_items)이 있는 식입니다. 따라서order_items가orders를 참조(의존)하는 구조가 흔히 사용됩니다.
- 이것은 마치 부모-자식 관계처럼, 부모(
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





