관계형 데이터베이스 여러개의 필드 혹은 하나의 필드 text json 0 4 1,230

by r-1y [DB 모델링/설계] 데이터베이스 mysql 설계 모델링 [2020.10.08 19:22:55]


안녕하세요, 데이터 베이스 설계중에 있는데 도움이 필요하여서 이렇게 글을 쓰게 되었습니다.

이미 10개 정도 필드들이 있는 상태에서 부가적인 정보 형태를 가진 데이터 (이름,번호,이메일,받는사람,받는 사람 번호,받는 폰번호,주소,상세주소,우편번호) 가 있는데 이 데이터들을 필드로 추가하여서 약 19개의 필드를 구성되게 설계할려고 했습니다.

부가적인 정보는 json으로 저장하는거는 어떻게 생각하느냐 아는 지인에게 이런말을 들었는데 굳이 text 타입을 이용해서 json으로 넣는게 좋을까요? 아니라면 왜 그런지도 알려주시면 감사하겠습니다!

글 읽어주셔서 감사합니다.
문제가 있다면 말씀해주세요 글 수정하겠습니다!

by 우리집아찌 [2020.10.09 10:43:50]

json으로 저장한다는 의미가 정확히 모르겠는데요

아마 추측하건데 한컬럼에 모두다 넣겠다는 내용 같습니다.

일단 모델링 관점에선는 안좋다고 말씀드리고 싶네요.

 

문제점

첫째 해당 데이터를 SQL로 조회가 가능하지 않습니다. ( 다른테이블과 조인으로 데이터 불러오려면 난감합니다 ) 

둘째 데이터 무결성 측면에서 좋지 않습니다. text 타입이면 괘찮지만 날짜,숫자등은 문제가 될수있습니다.

셋째 데이터 뿐만아이라 타 정보도 같이 들어가서 불필요한 사이즈가 늘어납니다  ( 컬럼 정보 , 구분자등 ) 

 


by r-1y [2020.10.09 13:15:52]

안녕하세요, 먼저 답변을 달아주셔서 감사합니다 또한 글을 모호하게 적어 의미 파악이 어려운점 죄송합니다.

A 컬럼에 mysql 데이터 타입 text를 이용하여 Json을 Json String으로 변환하여 A라는 컬럼에 넣는 내용입니다.
아찌님께서 말씀하신대로 한 컬럼에 모두 다 넣는 내용이였습니다.

말씀해주신 문제점들을 이미 생각은 하고 있었는데 언제나 설계할 때 이렇게만 해야돼 라는거는 알고 있는데 그게 왜??
라는 셀프로 혹은 질문을 받았을 때 할 말이 없더라고요. 그래서 다른 의견이나 혹은 제가 생각하지 못한 부분에 대해서 답변을 받으면 좋겠다라는 생각에서 질문을 올리게되었습니다.

2번에 대해서 추가적인 질문을 하고 싶습니다.
"text 타입이면 괜찮지만 날짜,숫자등은 문제가 될 수 있다" 라는게 어떤식으로 문제가 되는걸까요?

만약 '{"A":10,"B":"B"}' 라는 Json String을 가지고 있을때도 문제가 될까요??


by 우리집아찌 [2020.10.09 14:37:11]

2번 답변입니다.

a 컬럼이 숫자형이라면 인데 'aa' 라는 문자열이나 

number(3) 인데 1234 또는 1.334 가 들어가면 어떻게 될까요?

일반 컬럼에선 에러로 입력자체가 되지않겠지만

그렇지 않고 하나의 컬럼으로 처리하면 문제가 생길겁니다. ( 레거시 화면에 숫자인데 문자 또는 맞지 않는 데이터가 나오겠지요)

한컬럼에 넣는게 무조건 안된다고는 말못하지만

위의 여러사항때문에 비추천 하는것입니다.

 


by 마농 [2020.10.14 08:05:02]

조건 검색 구현이 어렵습니다.
인덱스를 이용한 빠른 검색도 안됩니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입