여러곳에서 한 테이블의 list가 필요한 경우엔?
405
작성한 질문수 112
만약 다음과 같이 여러곳에서 image라는 테이블을 참조한다면.. 그땐 어떻게 코드를 구현해야하는건가요?
프로젝트와 이미지는 1:n관계지만 이를 일대다로도 다대일로도 구현할 수있잖아요?
1. 만약에 다대일 양방향으로 구현
2. 일대다 단방향으로 구현
>>첫번째질문 : 어느것으로 해도 상관없나요?
근데 2번 방법을 지양하라고 하셨던 것 같아요 그래서 만약 1번 방법으로 한다고 가정할게요.
이미지 테이블같은경우 어떨땐 프로젝트의 이미지가 될수있고 (그러면 게시글의 이미지는 아닐테니 게시글_id값은 null이 되겠죠) 어떨땐 게시글의 이미지가 되겠죠..?
>>두번째질문 : 근데 이 이미지가 게시글의 이미지인지 프로젝트의 이미지인지가 중요할까요..?
>>세번째질문 : 만약에 중요하다면 enum을 사용하여 어떤 것의 이미지인지를 반환하는 메서드를 만들어주면되는건가요/?
답변 1
1
안녕하세요. 김민지님
이 경우 2가지 선택 방법이 있습니다.
1. 연관관계를 사용하는 방법
2. 연관관계 없이 사용하는 방법
1. 연관관계를 사용하는 방법
연관관계를 사용해도 되지만, 이렇게 되면 image 테이블에 프로젝트용 FK와 게시글 FK 처럼 수 많은 FK들이 계속 붙게 됩니다. 따라서 이렇게 공통으로 사용하는 테이블의 경우 연관관계를 사용하는 것은 추후 다른 엔티티에서 이미지를 사용할 때 FK가 계속 늘어나는 단점이 있습니다.
2. 연관관계를 없이 사용하는 방법
Image 테이블에 구분용 타입(ENUM)과 공통FK 필드를 하나 두는 방법입니다. 그리고 연관관계는 사용하지 않습니다. 이렇게 하면 조회 시점에 타입과 공통 FK 필드를 통해 이미지들을 추가로 조회하시면 됩니다.
감사합니다.
벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?
0
57
2
inheritance startegy 선택시 고려사항
0
41
1
Entity 동등성 비교
0
46
1
실무 조언 관련 질문입니다.
0
68
1
H2데이터베이스 파일 생성
0
78
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
70
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
63
1
JPQL 메소드와 락
0
63
1
Delivery @OneToOne
0
71
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
104
2
UnsupportedOperationException 발생
0
97
3
H2 Database 연결이 안됩니다.
0
102
2
연관관계 매핑 질문드립니다.
0
95
2
h2데이터베이스 실행오류
0
116
2
persistence.xml
0
121
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
89
1
영속성 컨텍스트
0
75
1
JPA 프록시
0
106
1
Native Query와 MyBatis
0
83
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
97
1
임베디드 타입 예시 코드 관련 질문
0
126
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
103
3
인텔리제이 패키지 커서 단축키 질문
0
113
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
154
1





