Inflearn brand logo image

인프런 커뮤니티 질문&답변

dev.rudevico님의 프로필 이미지
dev.rudevico

작성한 질문수

김영한의 실전 데이터베이스 - 기본편

문제와 풀이

[수정 건의] 문제3의 실행 결과

해결된 질문

작성

·

33

·

수정됨

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
안녕하세요, 영한님. 중요한 내용은 아니지만, 강의자료 개선에 조금이나마 도움이 될까 해서 글 남깁니다.

요약: 문제3의 [실행 결과]의 행 순서를 변경하는 것을 제안합니다. 

 

본론:

문제3: 회사 주요 이벤트 타임라인 만들기의 경우 '최신 이벤트가 가장 위에 오도록 내림차순으로 정렬'할 것을 요구하고 있습니다.

 

현재 강의록의 [실행 결과]에는 다음 사진과 같이 고객 가입 이벤트가 모두 상품 주문 이벤트 보다 아래에 위치하고 있고, "고객 가입 이벤트의 날짜는 쿼리 실행 시점의 created_at 값에 따라 달라질 수 있다" 고 명시되어 있습니다.

스크린샷 2025-08-24 22.42.19.png

 

 

수강생들이 위 사진만 얼핏 보고 섣불리 접근한다면, "(고객 생성 일시)가 쿼리 실행 시점에 따라 달라지기는 하지만, 그래도 모든 상품 주문 이벤트 이후에 위치하는게 올바른 결과겠구나"라고 판단할 위험이 있다고 생각해서 다음과 같이 수정하면 어떨까 의견을 제시합니다.

수정 이후: 모든 고객 가입 이벤트 행이 모든 상품 주문 행보다 위에 위치. 즉, 현재 [실행 결과]에서 두 이벤트의 위치를 맞바꿈.

 

수정 제안에 대한 근거는 다음과 같습니다.

  • 예제 데이터를 삽입할 때 users.created_at 컬럼의 경우 DEFAULT CURRENT_TIMESTAMP로 추가했음.

  • 수강생은 강의 오픈 날짜인 2025-08-01 이후에 쿼리를 실행하는 것이 보장되기 때문에 users.crated_at 컬럼의 값 또한 마찬가지로 보장됨.

  • 상품_주문 이벤트의 이벤트_날짜 중 가장 최근은 2025-06-17강의 오픈 날짜보다 이전임. 따라서 모든 상품_주문 이벤트 또한 마찬가지로 보장됨.

  • 따라서 모든 users.created_at 데이터는 orders.order_date보다 최근임이 보장됨.

 

아래 사진은 참고용으로, 수강생인 제 경우의 실행 결과입니다. 위에서 설명한 바와 같이 고객 가입 이벤트가 항상 상품 주문 이벤트보다 그 시점이 최근임을 확인할 수 있습니다.

스크린샷 2025-08-24 22.51.05.png

 

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

dev.rudevico님 자세히 설명해주셔서 감사합니다 🙂

다음 버전에 패치할게요!

dev.rudevico님의 프로필 이미지
dev.rudevico

작성한 질문수

질문하기