inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Nhập môn và thực hành thiết kế DB dành cho cả người không chuyên

Một nguyên tắc cốt lõi cần luôn ghi nhớ khi thiết kế DB

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

385

porporpor0202024779

22 câu hỏi đã được viết

0

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

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

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

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

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

mysql dbms/rdbms database dba

Câu trả lời 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

74

2

규칙 1에 대해서

0

99

2

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

0

107

2

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

0

96

2

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

0

107

2

FK 값 중복과 규칙 3 질의

0

114

2

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

0

75

2

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

0

78

1

몽고DB 강의 계획

0

101

2

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

0

123

1

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

0

126

2

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

0

128

2

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

0

144

2

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

0

289

2

관리자 테이블

0

283

2

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

0

293

2

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

0

159

2

개발자 및 DB 설계 관련 질문

0

190

1

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

0

135

2

erd 진짜 안그려도 되나요

0

303

2

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

0

127

2

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

0

173

2

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

0

235

2

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

0

145

2