DB 설계 관련 질문 0 2 719

by JJ [MySQL] mysql DB구조 설계 질문 [2020.05.09 12:43:01]


안녕하세요? 지금 mysql에서 사이트 가입자의 정보를 저장하는 테이블 user를 만들려고 합니다.

이 user 테이블에 ID(pk), 로그인할 때 필요한 아이디, 비밀번호, 실명, 전화번호, 가입일자, ....등 varchar이나 int, datetime 데이터 타입으로만 약 15~20개 정도의 필드를 생각중입니다.

문제는 사용자별로 사이트의 언어나 알림&소리 설정, 또는 즐겨찾는 게시판, 프로필 사진..... 등등 개인적으로 설정한 값들도 DB에 저장하도록 해야하는데..... user 테이블을 호출하는 빈도에 반해 이 설정값들을 호출하는 빈도가 많이 낮습니다. (제일 처음에 한 번 정도...)

프로필사진은 다른 사용자들이 댓글을 달거나 대화를 할 때 그 이미지를 DB에서 불러오기 때문에 다른 설정값들에 비해서는 호출 빈도가 높은 편이지만요.

1. 이런 경우 한 테이블 (user)에 개인 설정값을 저장하는 필드들을 추가로 넣는 것보다는 따로 setting이라는 필드를 만드는 것이 좋을까요?

2. 그리고 프로필 사진과 같은 blob파일이 들어있는 경우 또는 컬럼의 수가 많은 경우, SELECT 성능이 많이 저하되는지요?

 

도움 부탁드립니다.

by 마농 [2020.05.11 08:05:27]

데이터 특성에 따라 테이블을 분할하여 관리 할 수 있습니다.
사진과 같은 LOB 데이터도 테이블 분할을 고려할 수 있습니다.
비밀번호나 개인정보와 같은 암호화가 필요한 항목도 테이블 분할을 고려할 수 있습니다.


by JJ [2020.05.11 15:57:30]

감사합니다!!

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