inflearn logo
강의

講義

知識共有

本当! Querydsl

紹介

외래키설정 ConstraintMode

2266

jys

投稿した質問数 24

3

ConstraintMode.NO_CONSTRAINT를 이용해서 조인컬럼을 지정할경우 논리적으로만 맺고 물리적인 외래키를 맺지않는걸로 알고있는데 이러한 방법으로 외래키를 지정하는게 좋은방법인가요 ?

JPA java

回答 3

12

yh

안녕하세요 윤성님^^ 좋은 질문입니다.

해당 옵션을 사용하면 JPA가 자동으로 생성해주는 DDL에 외래키 제약조건을 넣고 빼고 하는 곳에만 영향을 줍니다. 실제 운영에서는 이런 JPA가 제공하는 DDL을 사용하는게 아니라, 직접 DDL을 작성해서 DB에 반영하는 식으로 진행해야 합니다.

그렇기 때문에 해당 옵션이 실제 운영에서는 영향을 주지는 않습니다.

결국 본질적인 질문으로 돌아오면 이 질문은 JPA에 대한 내용이라기 보다는 순수 RDB의 FK 제약조건을 사용할 필요가 있는가? 라는 질문으로 생각하고 답변을 드리겠습니다.

RDB에서 FK 제약조건을 사용하는게 좋다, 사용하면 성능도 떨어지고 시스템을 운영하기도 불편하다 등등 여러가지 의견이 많습니다.

제 경험을 말씀드리면, 저는 기본은 FK 제약조건을 사용하는 것이 좋다고 생각합니다. FK 제약조건을 사용하지 않아서 실제 물리 DB에 데이터가 중복으로 입력되거나, 이상하게 되어서 애플리케이션에서 고생하는 경우를 너무 많이 보았습니다.

다만 FK 제약조건을 사용하지 않는 것이 더 나은 상황도 있습니다. 예를 들어 데이터가 너무 많거나(1억건이 넘어가거나) 테이블이 정교함 보다는 로그성 처럼 좀 틀려도 되는 경우에는 외래키를 맺지 않는 것이 더 좋을 때도 있습니다.

제가 권장드리는 방법은 기본은 FK 제약조건을 정교하게 사용하다가, 애플리케이션에 데이터 적제가 너무 많아져서 제약조건이 문제가 되는 시점에 DBA분과 상의하고 진행방향을 결정하는 것을 권장드립니다^^

감사합니다.

3

jys

친절하고 자세한 답변 감사합니다 !! 바로이해됐습니다

0

yh

네^^! 좋은하루 되세요

SpringBoot 4.X에서의 Querydsl 설정

0

81

2

querydsl 오픈소스에 대한 질문

0

69

1

예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?

0

108

1

Querydsl 6.X버전에 대해서 어떻게 생각하시나요?

0

316

2

여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요

1

68

1

fetchResults()는 더이상 권장되지 않는다는데 맞나요?

0

159

1

querydsl sum() 메서드 없어요.

0

157

2

build 디렉터리 생성

0

135

2

자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?

0

113

2

현재 Querydsl에서 from절 서브쿼리를 지원하나요?

0

90

1

오타 제보 드립니다.

0

70

2

벌크 연산과 flush, clear

0

76

1

Run As Intellij 로 변경시 Q타입 import 불가

0

87

1

QHello import하기 문제 발생

0

147

2

등록된 함수 보는법(H2Dialect) 질문

0

68

2

5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의

1

195

2

[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??

1

200

1

querydsl 설정 문제

0

222

2

quey dsl 설정부분

0

157

2

count 쿼리 관련 질문입니다!

0

75

1

stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.

0

89

1

답변부탁드리겠습니다.

0

89

2

(OrderSpecifier)관련 내용 어디있을가요

0

64

1

중급문법 벌크연산에서

0

81

2