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

Session 06 - 다양한 연관관계 매핑 #6

Open
luke0408 opened this issue Jul 23, 2023 · 4 comments
Open

Session 06 - 다양한 연관관계 매핑 #6

luke0408 opened this issue Jul 23, 2023 · 4 comments
Assignees
Labels
✅ done 작성 완료

Comments

@luke0408
Copy link
Contributor

Session 06 - 다양한 연관관계 매핑

Issue 생성자: @luke0408

작성 참여

  • Chapter 01 - 다대일 [N:1] : @Hyunstone
  • Chapter 02 - 일대다 [1:N] : @hw130
  • Chapter 03 - 일대일 [1:1] : @asas6978
  • Chapter 04 - 다대다 [N:M] : @luke0408
  • Chapter 05 - 실전 예제 3 - 다양한 연관관계 매핑 : @destiny3912
@Hyunstone
Copy link
Collaborator

@luke0408 @destiny3912
다대다 관계를 일대다, 다대일로 풀어낼 때 사용하는 중간 테이블을 연결용으로만 사용하게 되면 안좋은건가요?

@destiny3912
Copy link
Collaborator

@luke0408 @destiny3912 다대다 관계를 일대다, 다대일로 풀어낼 때 사용하는 중간 테이블을 연결용으로만 사용하게 되면 안좋은건가요?

안 좋다라기보다는 해당 테이블을 사용하는 비즈니스 로직이 중간 테이블에 무언가 추가적인 연산이 필요할때 컬럼을 추가하여 사용하면 됩니다.
예를 들어서 통계치를 낸다던가 하는 이유로 카운팅을 한다던가 등등이 있겠네요 (쉬운 이해를 위한 예시)

@luke0408 luke0408 added ✅ done 작성 완료 ❓ question 해결되지 않은 질문이 남았을 때 and removed ✍️ in progress 작성 중 labels Aug 2, 2023
@luke0408
Copy link
Contributor Author

luke0408 commented Aug 2, 2023

@hw130
일대다를 사용하는 것보다 대부분의 상황에서 다대일을 사용하는 것이 좋은 것 같은데, 그럼에도 불구하고 일대다에 대한 어노테이션이 남아 있다는 것은 장점으로 작용하는 때가 있다는 것으로 이해됩니다.

일대다 어노테이션을 이용해 이점을 챙길 수 있는 상황이라던가 예시 코드 같은게 있을까요..?

@hw130
Copy link
Collaborator

hw130 commented Aug 3, 2023

@hw130 일대다를 사용하는 것보다 대부분의 상황에서 다대일을 사용하는 것이 좋은 것 같은데, 그럼에도 불구하고 일대다에 대한 어노테이션이 남아 있다는 것은 장점으로 작용하는 때가 있다는 것으로 이해됩니다.

일대다 어노테이션을 이용해 이점을 챙길 수 있는 상황이라던가 예시 코드 같은게 있을까요..?

일대다 어노테이션을 통해 이점을 얻을 수 있는 상황은 엔티티를 재사용할 때입니다.
예를 들면, 1의 User(사용자) 엔티티가 N의 Post(게시물) 엔티티와 연결되어 있다고 가정해보겠습니다. 이때 User(사용자) 엔티티를 재사용하여 다른 엔티티에서도 사용할 수 있는데요, User(사용자) 엔티티는 List 필드를 통해 여러 개의 Post 객체들과 일대다 관계를 가집니다. Post 엔티티는 user 필드를 통해 하나의 User 객체와 다대일 관계를 가지게 됩니다.
이 User(사용자) 엔티티를 다른 엔티티에서도 활용해보자면, Comment(댓글) 엔티티가 추가로 존재한다고 가정해보았을 때 N의 Comment(댓글) 엔티티도 Post(게시물) 엔티티와 마찬가지로 1의 User(사용자) 엔티티와 다대일 관계를 형성합니다. 이렇게 User(사용자) 엔티티를 여러 다른 엔티티에서 공통적으로 사용함으로써 코드를 재사용할 수 있습니다. 이렇게 재사용 하는 경우에 일대다 관계를 사용하여 User(사용자) 엔티티에 저장된 사용자 정보를 다른 엔티티(댓글, 게시물 외 다른 엔티티)에서도 활용할 수 있게 됩니다.

@luke0408 luke0408 removed the ❓ question 해결되지 않은 질문이 남았을 때 label Aug 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✅ done 작성 완료
Projects
None yet
Development

No branches or pull requests

5 participants