Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3단계 - 수강신청(DB 적용) #532

Open
wants to merge 27 commits into
base: sm9171
Choose a base branch
from
Open

Conversation

sm9171
Copy link

@sm9171 sm9171 commented May 3, 2024

안녕하세요 리뷰어님 생각보다 pr이 늦었네요.. 연관객체들을 저장 조회할때 좀 어려움을 느꼈습니다. 이번 리뷰도 잘 부탁드리겠습니다.

작업내용

  1. image 테이블과 session 테이블을 만든 뒤에 jdbcrepository를 구현하고 생성 조회 테스트를 진행함.

어려웠던 점

  1. session 안에 있던 다른 도메인(image, user)를 저장, 조회할 때 고민하다가 null처리로 구현함
  • session안에는 image 객체가 있지만 db에는 image의 식별자 키를 저장하고 조회하는게 맞을 것 같습니다.
  1. session에 session을 등록한 유저들 객체(users)가 있는데 db에는 어떻게 저장해야 할지 모르겠음.

* 과정은 여러 개의 강의(Session)를 가질 수 있다. 케이스 통과
* 강의는 시작일과 종료일을 가진다. 케이스 통과
* '이미지 크기는 1MB 이하여야 한다' 테스트 성공
* '이미지의 width는 300픽셀, height는 200픽셀 이상이어야 하며, width와 height의 비율은 3:2여야 한다.' 테스트 성공
- '무료 강의는 최대 수강 인원 제한이 없다' 테스트 성공
- '유료 강의는 강의 최대 수강 인원을 초과할 수 없다.' 테스트 성공
# Conflicts:
#	src/main/java/nextstep/image/domain/Image.java
#	src/main/java/nextstep/image/domain/ImageShape.java
#	src/main/java/nextstep/sessions/domain/Charge.java
#	src/main/java/nextstep/sessions/domain/Enrollment.java
#	src/main/java/nextstep/sessions/domain/Session.java
#	src/main/java/nextstep/sessions/domain/SessionDate.java
#	src/main/java/nextstep/sessions/domain/SessionInfo.java
#	src/test/java/fixture/sessions/domain/SessionFixture.java
#	src/test/java/nextstep/sessions/domain/SessionTest.java
@sm9171 sm9171 changed the base branch from master to sm9171 May 3, 2024 15:54
Copy link
Contributor

@javajigi javajigi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

도메인 객체와 DB 매핑하느라 수고했어요. 👍
pr 본문에도 남겼지만 DB 매핑의 가장 중심이 될 수 있는 수강생에 대한 매핑이 빠져있네요.
이와 관련한 피드백 남겼으니 한번 도전해 보면 어떨까요?
수강생 정보를 db에 저장함으로써 생기는 도메인 객체의 변경 사항도 한번 고민해 보면 좋겠습니다.

@@ -1,13 +1,43 @@
package nextstep.image.domain;

public class Image {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍


public int getCapacity() {
return enrollment.getCapacity();
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Session과 NsUser의 관계는 어떻게 될까?

  • 한 Session은 n명이 수강할 수 있다.
  • 한명의 NsUser는 n개의 Session을 수강신청할 수 있다.

위와 같은 관계이므로 Session : NsUser는 m : n 관계이다.
보통 DB 설계할 때 m : n는 어떻게 설계하는지를 고려해 테이블을 추가하고 매핑해 보면 좋겠다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants