inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

제2 정규형

조건 제약 처리 부분 질의

해결된 질문

66

asdf

작성한 질문수 1

0

 

안녕하세요.

섹션 8에서 장바구니에 주문을 생성할 때 같은 상품이 중복으로 생성되게 하지 않게 제약 조건을 걸었는데

실무에서는 쿼리에서 제약 조건을 거는 지

아니면 애플리케이션에서

- 없을 때 추가

- 있을 경우 수량 증가

와 같이 아니면 비즈니스 로직에서만 처리 하는 지

어떤 케이스나 어느 비율로 적용하는 사례가 궁금합니다.

 

sql mysql dbms/rdbms 소프트웨어-설계 SQLD

답변 2

1

김영한

안녕하세요. asdf님

AI 인턴이 잘 답변해주었는데요. 다음 내용도 참고해보시면 도움이 되실거에요

https://inf.run/Mo7Ms

감사합니다.

0

인프런 AI 인턴

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

asdf님, 질문해주신 내용에 대해서 답변 드리겠습니다.

실무에서는 중복된 상품을 처리하는 방법은 여러 가지가 있을 수 있습니다. 일반적으로 다음과 같은 세 가지 접근 방법을 고려할 수 있습니다:

  1. 데이터베이스에서 제약 조건 설정: 데이터베이스 레벨에서 유니크 제약 조건을 걸어 중복된 데이터 입력을 방지할 수 있습니다. 이 방법은 데이터를 일관성 있게 유지하는데 도움을 줄 수 있지만, 애플리케이션 로직에서의 세부적인 제어는 어렵습니다.

  2. 애플리케이션에서 비즈니스 로직 처리: 애플리케이션 코드에서 데이터베이스에 데이터를 추가하기 전에 중복을 확인하고, 없을 경우에만 추가하거나 이미 존재하면 수량을 증가시키는 방식으로 처리할 수 있습니다. 이렇게 하면 더 유연하고 세밀한 로직을 구현할 수 있습니다.

  3. 혼합 사용: 두 가지 방법을 조합하여 사용하는 것도 일반적입니다. 예를 들어, 중요한 데이터 무결성을 보장하기 위해 데이터베이스 제약 조건을 사용하되, 애플리케이션 레벨에서도 비즈니스 로직을 통해 여러 케이스를 처리할 수 있도록 합니다.

각 방법은 프로젝트 요구사항과 데이터베이스 설계에 따라 다르게 적용될 수 있습니다. 따라서 어느 한 방법을 일반화하기보다는 상황에 맞게 적절한 방법을 선택하는 것이 중요합니다. 많은 경우 실무에서는 데이터 무결성을 보장하기 위해 데이터베이스와 애플리케이션의 조화를 이루는 방법이 많이 사용됩니다.

추가로 참고하실 수 있는 자료로는 Spring Boot Reference Documentation에서 데이터 접근 및 데이터 초기화 관련 가이드를 제공하고 있습니다:
Data Access
Database Initialization

아주 작은 정오표 전달드립니다.

0

52

2

실제로 작은 기업에서 기획 롤

1

27

1

order_product 까마귀발

0

44

2

[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.

0

53

1

자연키 vs 대리키 실무질문

0

28

1

1:N 관계에서 중간테이블 (연관엔티티)

0

57

2

일대일 fk 위치

0

43

1

제 3 정규형 vs BCNF 정규형 차이점?

0

106

3

BCNF 질문

0

78

2

연관 엔티티 네이밍 규칙

0

53

1

진짜 강의 듣는거 너무 고문

0

139

1

28강 sql 파일 어딨나여?

0

94

1

2NF의 엄밀한 정의

0

74

1

comment 채번을 사용해야 하는 이유에 대한 설명이 필요합니다.

0

124

3

학습중인 수업자료를 받아볼 수 있을까요??

0

103

2

수업자료 pdf파일관련 건의 - 제목 링크위치 개선

0

88

2

서비스 운영 중 잘못된 테이블 설계 발견시 수정 시점에 대한 질문

1

107

2

실무적인 설계로 접근했을 때 제 2정규형 항상 만족?

0

82

1

슈퍼/서브 타입 joined 전략

0

74

2

created_at 관련 구현과 DB ENUM에 대해

0

75

1

M:N 관계의 연관 엔티티 설계 순서

0

81

2

데이터 역사성 훼손 문제

0

67

2

실무팁 - 등록자,수정자 컬럼 관리 관련 질문입니다.

0

84

1

구글이 이메일 변경을 허용하는 이유

0

126

1