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

슬립낫님의 프로필 이미지
슬립낫

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

다대다 [N:M]

식별자 관리 질문드립니다.

해결된 질문

작성

·

233

3

MemberProduct(Order)에 주문번호로 관리가 되면 ID는 그대로 두고 주문번호라는 컬럼을 추가하고 Unique 인덱스를 추가하는 것이 나은것인지 아니면 주문번호를 PK로 올리는 것이 맞는것인지 궁금합니다.         

답변 4

1

강사님, 이 질문의 답변 내용에 대해서 질문있습니다.

주문번호라는 새로운 컬럼을 추가하여 PK로 사용하신다는 것은 지금까지 강의에서 설명하셨던 것처럼 PK를 Generated Value로 사용하기 위함일거라고 생각되는데요.

어차피 Id라는 녀석이 있는데 왜 굳이 주문번호 컬럼을 추가하는지 모르겠습니다.

애초에 Id라는 값이 위의 목적에 부합하는 Generated Value이지 않나요? 그냥 Id를 바로 PK삼으면 될 것을 왜 굳이 주문번호를 추가하는지요?

 혹시 Id라는 값이 Generated Value로 주어진 PK로서의 역할만 하는 것이 아니라 비즈니스 로직에서 어떤 유의미한 값으로 사용될 수 있기 때문인가요? 

만약 이게 맞다면, 이러한 Id의 쓰임새에 대해서 간략하게 설명을 부탁드려도 될까요?

1

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

안녕하세요 양광모님 좋은 질문입니다.

둘다 장단점이 있고, 내용이 너무 길어져서 제가 선호하는 방법을 말씀드리면, 저는 ID는 그대로 주고 주문번호 컬럼을 추가하는 방식으로 문제를 해결합니다.

자세한 내용은 JPA 책 220p ~ 234p 6.4 다대다 부분을 보면 두가지 케이스를 코드로 비교해서, 각 장단점과 궁금해 하시는 부분을 쭉 풀어서 설명해두었습니다.

감사합니다^^

0

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

네^^

0

슬립낫님의 프로필 이미지
슬립낫
질문자

빠른 답변 감사합니다~ 제 생각도 비즈니스 키를 별도로 추가해서 사용하는 것이 좋다고 생각되었는데 의견 감사드리고 JPA 책도 참조해보겠습다. 감사합니다.

슬립낫님의 프로필 이미지
슬립낫

작성한 질문수

질문하기