inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

174만명의 커뮤니티!! 함께 토론해봐요.

데이터베이스 설계 시에서 일반적인 상황에 대해 여쭤보고싶습니다!

미해결

실전! 스프링 데이터 JPA

안녕하세요 강사님! 강사님의 강의 영상을 보고 Spring Data JPA 를 학습했던 학생입니다. 다름이 아니라 데이터베이스 설계 시에 다음과 같은 상황에서는 어떤 방법이 일반적인지 실무의 관점에서 조언을 얻고자 합니다. `USER`, `COURSE`, `ASSIGNMENT`, `ASSIGNMENT_SUBMIT` 이렇게 4개의 테이블이 있다고 가정할 때, USER : 사용자 테이블 COURSE : 강의 테이블 ASSIGNMENT : 과제 테이블 ASSIGNMENT_SUBMIT : 학생이 제출한 과제 테이블 ASSIGNMENT_SUBMIT 테이블의 PK가 어떤 형태로 되어야 하는지 각각의 장단점에 대해 생각을 해보았습니다. 1. id 라는 칼럼을 만들어서 Auto_Increment 로 pk 를 관리한다. - 장점 - findById 에서 숫자 인덱스를 이용한 조회를 하기 때문에 조회 속도가 빠르다. - 단점 - 칼럼 하나가 늘어난다. 2. user_id 와 assignment_id 라는 두 개의 칼럼을 이용해서 pk로 관리한다. - 장점 - id 칼럼이 사라진다. - 단점 - jpa 에서 제공하는 기본 findById 가 사라진다. - fk 를 결합하여 pk 를 만드는 레퍼런스를 찾지 못했다.. 정도 있습니다. 만약 강사님이시라면 어떤 선택을 하실지 또한 각각 어떤 장단점이 더 있을지 알려주실 수 있으실까요?

  • jpa
  • spring-boot
  • entity설계
  • JPA
  • db설계
  • java
  • pk
  • spring
장원익 댓글 1 좋아요 0 조회수 386

인기 태그

인프런 TOP Writers

주간 인기글