• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

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

19.12.13 18:01 작성 조회수 158

3

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

답변 4

·

답변을 작성해보세요.

1

임현강님의 프로필

임현강

2021.02.24

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

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

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

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

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

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

1

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

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

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

감사합니다^^

0

네^^

0

슬립낫님의 프로필

슬립낫

질문자

2019.12.14

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