팀 과제 중 생긴 연관관계에 대한 고민(궁금증)

GyungKu·2023년 12월 11일
0

과제 하면서 생긴 고민(궁금증)

상품과 주문이 다 대 다 관계라고 생각해서
주문 상품이라는 중간 테이블을 두었는데

상품을 참조하는 주문 상품이 생긴 순간 문제가 생긴다
상품을 삭제하기 위해서는 주문 상품도 같이 지우거나
주문 상품이 참조하는 상품의 id를 null로 만들어야 하는데 둘 다
말이 안 된다고 생각해서
상품에 속성값에 deleted라는 값을 넣어서 삭제 여부를 판단했다.

여기서 고민이 생긴 게
이런 식으로 deleted를 넣어주는 것과
아니면 주문 상품에서 관계를 주문과만 맺고 상품은 참조를 하지 않고
상품의 필요한 속성값만 쓰던가
주문상품에서 상품을 자바상에서 상속받아서 쓰는 방식도 생각해볼 수 있을 거 같아서
그거에 대해서 좀 고민을 해보고 튜터님께 질문을 드려봤다.

튜터님의 답변

튜터님은 이렇게 말씀해 주셨다.

  • 굳이 엔티티 연관관계를 맺지 않고 id값만 원시 타입으로 가져도 괜찮다.(테이블 상에서도 관계를 맺지 않고)
  • 만약 필요한 상황(엔티티를 갖는 게 더 좋은 상황)이 온다면 그때 엔티티를 연관관계로 맺는 것도 괜찮다.(트레이드오프를 생각)
  • 연습할 때 원시타입으로 해보면서 상황에 따라 바꿔 보는 게 좋은 공부 방법이다.
  • 속성값으로 갖고 있고, 기간이 지나면 batch를 통해서 벌크 삭제를 한다(복구하는 경우가 있기 때문에)
  • 물론 말씀해 주신 것들이 정답은 아니라고 하셨다!! 개발자마다, 상황마다 모두 다르다

0개의 댓글