inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

ERD 매핑 관계 질문(ManyToMany 매핑 사용여부)

62

KMC

작성한 질문수 42

0

 

{30F2D2E7-6E7B-40D2-B988-890C8946E81C}.png

 

안녕하세요 숨고와 같이 게시판이 여러개 있을 경우 예를들어 특정게시판에서 게시글에 대한 필터링 밑에 사진 2개처럼 분야와 위치에 관해 필터링해서 게시글을 볼 수 있는 경우 이렇게 하는 것 말고는 답이 없나요?

{0A4D8E05-AD18-46BB-9B36-E6246BC1AF15}.png{B6BDDEC3-62C6-4B20-91BE-4AFC4A8D5D1B}.png

 

jpa ERD

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

전한준님, 데이터베이스에서 게시판을 여러 개 운영하고 각 게시글에 대해 분야와 위치에 따라 필터링을 구현하고자 하시는군요. 현재 주어진 ERD(개체-관계 다이어그램)를 기반으로 각각의 게시글이 특정 ‘분야’와 ‘위치’에 연결되어 필터링이 가능하도록 설계하는 방법에 대해 말씀드리겠습니다.

  1. ManyToMany 매핑: 게시글이 여러 분야에 속하고, 또한 여러 위치에 속할 수 있는 구조라면 ManyToMany 매핑이 적합할 수 있습니다. JPA 등을 활용하여 ‘Post-Category (분야)‘와 ‘Post-Location (위치)’ 사이의 다대다 관계를 매핑하여 구현할 수 있습니다. 이 경우, 중간 테이블을 생성해 각 게시글이 어떤 분야, 어떤 위치와 연결되는지를 기록하는 방식으로 해결할 수 있습니다.

  2. 다른 방법:

    • Single 연결: 만약 하나의 게시글이 단 하나의 분야와 위치에만 속한다면 단순히 각각의 ‘Post’ 테이블에 ‘분야 ID’와 ‘위치 ID’를 외래 키로 추가하여 관리할 수 있습니다.
    • 검색 필터링: 데이터의 크기 및 성격에 따라 다르지만, 검색 필터링 용도로 검색 인덱스를 활용하여 효율성을 높일 수 있습니다.

두 방법 모두, 데이터베이스의 설계와 쿼리 최적화가 중요합니다. 또한, 사용자가 많거나 데이터가 매우 방대한 경우에는 검색 성능을 고려해 세심한 인덱싱과 캐시 전략이 필요할 수 있습니다.

더 자세한 구현 방법이나 최적화에 대한 부분은 프로젝트의 규모와 요구 사항에 따라 다를 수 있습니다. 추가적인 사항이 필요하시면 언제든지 문의하세요.

이미지 링크:
- 첫 번째 이미지
- 두 번째 이미지
- 세 번째 이미지

스프링부트 서버 에러나요

0

17

1

RepositoryTest의 패키지 위치가 domain인 이유

0

29

2

도메인 모델에서 관계와 규칙을 구분하는 방법

0

37

2

16 강의 메세지 retryCount의 의도

0

23

2

JPA Repository 질문이 있습니다!

1

33

2

페이지네이션 처리를 쿼리에서 하는 방식 질문

1

36

1

UserService, CertificationService 책임 분리 기준 질문

0

26

1

실무 조언 관련 질문입니다.

0

41

1

sdk 설정 오류

0

49

2

H2데이터베이스 파일 생성

0

49

2

SpringBoot 4.X에서의 Querydsl 설정

0

84

2

REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!

0

29

1

오탈자 - @Transactional

0

55

1

Dto와 Entity 사용 관련 질문

0

30

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

49

2

EC2 실습 중 docker-compose / docker ps 실행 시 권한 오류 문의

2

71

1

application.properties 작성 관련 질문

0

44

2

색깔구분

0

44

3

gradlew, java -jar 로 애플리케이션 실행시키기에서

1

49

1

리액트 관련 질문이 있습니다.

0

62

2

강의 관련 외 질문입니다.

0

65

2

update()에 사용하는 setter 질문드립니다.

0

47

1

스프링부트 버전

0

67

2

querydsl 오픈소스에 대한 질문

0

70

1