inflearn logo
강의

講義

知識共有

非専門家でも理解できるDB設計入門・実践

DB設計時に必ず覚えておくべき1つの核心原則

db 컬럼에 JSON 박아도 되나요?

311

porporpor0202024779

投稿した質問数 22

0

학생들이 문제를 푸는 시스템을 만들고 있는데요.

문제 갯수도 시험마다 다르고, 각 문제마다 학생들이 저장하는 답변도 달라지니까 이게 관리가 어렵더라고요.

정규화로는 좀 어려운거 같은데.. 혹시 이런경우에 JSON 넣어도 되나요?

그리고 찾아보니까 Postgresql에서 JSON을 지원한다고 하는데 이거 써서 개발하는게 맞는 판단인지 궁금합니다.

혼자서 판단할수 있음 좋겠지만 이제 막 개발배워서 해보는거라 이게 맞는지 모르겠어요.

mysql dbms/rdbms database dba

回答 2

0

jscode

안녕하세요 상원님! 좋은 고민 하고 계시네요:)

정규화로 데이터 관리가 어렵다면 JSON 형태로 데이터를 저장하셔도 괜찮습니다.

JSON 형태로 데이터를 저장한다는 건 정규화를 지키지 않는 방식이기 때문에

이걸 보고 '역정규화'라고 얘기를 하기도 합니다.

 

역정규화의 장단점에 대해서 한 번 찾아보시면서

JSON 형태로 데이터를 넣는 게 좋은 지 고민해보시면 좋을 것 같습니다!!

 

그리고 ChatGPT 답변의 내용도 괜찮은 것 같아서 같이 첨부드릴 수 있도록 할게요!

https://chatgpt.com/share/67bbd36a-fd60-8003-b9ca-929be5cb2c83

1

porporpor0202024779

오 대단히 감사합니다. 역정규화도 한번 경험해본다 생각하고 일단 써보겠습니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 박상원님께서 질문하신 내용은 데이터베이스 설계에서 흔히 접하게 되는 딜레마입니다. 특정 데이터 구조를 다루기 복잡할 때 JSON 형식을 데이터베이스 내에 저장하는 게 좋은 방법일 수 있습니다.

  1. JSON 사용의 장점:

    • 유연성: 각 시험마다 문제의 수나 형태가 달라도, JSON을 사용하면 해당 데이터를 쉽게 기록하고 유지할 수 있습니다.
    • PostgreSQL의 JSON 지원: PostgreSQL은 JSONB라는 이진화된 JSON 형식을 제공하여, 구조화된 쿼리와 인덱싱을 통해 JSON 데이터를 보다 효율적으로 다룰 수 있게 합니다.
  2. 주의사항:

    • 복잡성 증가: JSON을 사용하면서 비정규화된 데이터가 될 가능성이 있으므로, 이런 데이터에 대한 명확한 인덱싱 전략과 적절한 데이터 접근 방식을 고민해야 합니다.
    • 쿼리의 복잡성: JSON 데이터를 쿼리하는 것은 평범한 관계형 데이터보다 상대적으로 더 복잡할 수 있습니다. 따라서, 필요한 인덱스를 미리 준비해 빠른 쿼리가 가능하도록 하는 방안을 고려해야 합니다.

PostgreSQL에서 JSON을 사용하는 것이 문제 해결의 한 방법일 수 있지만, 데이터의 특성과 애플리케이션 요구사항에 맞는지를 반드시 확인해야 합니다. 이전 질문 및 답변을 참고하시길 바랍니다:

이 링크들을 통해 JSON의 사용 여부가 현재 시스템에 적합한지 확인할 수 있으며 더 깊은 이해를 얻으실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

진짜중복/가짜중복을 나누는데 있어서

0

33

2

규칙 1에 대해서

0

53

2

강사님도 실제로 구글 시트에 이런식으로 적으면서하는걸까요?!

0

56

2

만약 신고사유가 객관식 다운드롭형태일때는 테이블을 따로 분리하는건가요??

0

56

2

설문 후속강의 쿠폰 제공 이벤트에 대해서

0

76

2

FK 값 중복과 규칙 3 질의

0

76

2

7-42. 역정규화 섹션에 나온 참고글 링크

0

44

2

[JSCODE 쇼핑몰 (2)] 상품 테이블의 등록한 사람 질문 입니다.

0

48

1

몽고DB 강의 계획

0

80

2

프론트단에서 고정 저장 / 백엔드에서 조회 저장

0

90

1

게시글 작성자 Id(사용자 FK) 숫자가 맞나요?

0

96

2

UI를 보고 저장해야할 데이터인지 파악하는 팁이 있을까요?

0

97

2

안녕하세요 강사님 문의 사항이 있습니다

0

108

2

실제 개발에 들어가거나 서비스 운영 중에도 DB설계를 바꾸나요?

0

233

2

관리자 테이블

0

227

2

외래 키 지정은 필수가 아닌 건가요?

0

255

2

게시판 닉네임, 아이디 관련질문

0

126

2

개발자 및 DB 설계 관련 질문

0

155

1

중복데이터 질문 있습니다.

0

104

2

erd 진짜 안그려도 되나요

0

276

2

그냥 하나씩 만들어나가면서 DB 설계를 그때그때 하는건 틀린건가요?

0

104

2

JSCODE 게시판에서 댓글 관련하여 설계

0

128

2

주문수량과 재고량 관련하여 테이블 분리시

0

197

2

todo데이터 테이블 설계 강의 질문있습니다.

0

115

2