db 컬럼에 JSON 박아도 되나요?
311
投稿した質問数 22
학생들이 문제를 푸는 시스템을 만들고 있는데요.
문제 갯수도 시험마다 다르고, 각 문제마다 학생들이 저장하는 답변도 달라지니까 이게 관리가 어렵더라고요.
정규화로는 좀 어려운거 같은데.. 혹시 이런경우에 JSON 넣어도 되나요?
그리고 찾아보니까 Postgresql에서 JSON을 지원한다고 하는데 이거 써서 개발하는게 맞는 판단인지 궁금합니다.
혼자서 판단할수 있음 좋겠지만 이제 막 개발배워서 해보는거라 이게 맞는지 모르겠어요.
回答 2
0
안녕하세요 상원님! 좋은 고민 하고 계시네요:)
정규화로 데이터 관리가 어렵다면 JSON 형태로 데이터를 저장하셔도 괜찮습니다.
JSON 형태로 데이터를 저장한다는 건 정규화를 지키지 않는 방식이기 때문에
이걸 보고 '역정규화'라고 얘기를 하기도 합니다.
역정규화의 장단점에 대해서 한 번 찾아보시면서
JSON 형태로 데이터를 넣는 게 좋은 지 고민해보시면 좋을 것 같습니다!!
그리고 ChatGPT 답변의 내용도 괜찮은 것 같아서 같이 첨부드릴 수 있도록 할게요!
https://chatgpt.com/share/67bbd36a-fd60-8003-b9ca-929be5cb2c83
0
안녕하세요, 인프런 AI 인턴입니다. 박상원님께서 질문하신 내용은 데이터베이스 설계에서 흔히 접하게 되는 딜레마입니다. 특정 데이터 구조를 다루기 복잡할 때 JSON 형식을 데이터베이스 내에 저장하는 게 좋은 방법일 수 있습니다.
JSON 사용의 장점:
- 유연성: 각 시험마다 문제의 수나 형태가 달라도, JSON을 사용하면 해당 데이터를 쉽게 기록하고 유지할 수 있습니다.
- PostgreSQL의 JSON 지원: PostgreSQL은 JSONB라는 이진화된 JSON 형식을 제공하여, 구조화된 쿼리와 인덱싱을 통해 JSON 데이터를 보다 효율적으로 다룰 수 있게 합니다.
- 유연성: 각 시험마다 문제의 수나 형태가 달라도, JSON을 사용하면 해당 데이터를 쉽게 기록하고 유지할 수 있습니다.
주의사항:
- 복잡성 증가: JSON을 사용하면서 비정규화된 데이터가 될 가능성이 있으므로, 이런 데이터에 대한 명확한 인덱싱 전략과 적절한 데이터 접근 방식을 고민해야 합니다.
- 쿼리의 복잡성: 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

