개발자

SQL 테이블 구성 도움 부탁드려요

2022년 09월 20일조회 303

안녕하세요, SQL 테이블을 구상하려고하는데, 어떤 방식이 더 좋을지 몰라서 질문합니다. 요구사항은 사용자의 부가 정보를 저장하면 되구요. 부가 정보는 이메일, 주소, 전화번호 등등이 있습니다. 1번 방법 (사진 참고): contactType과 content로 다양한 정보 유형을 받는다 2번 방법 (사진 참고): email, phone, address 등 고정된 값을 받는다 1번과 2번 중 어떤 방식이 더 좋을지 잘 모르겠어요. 1번 방법이 더 많은 정보의 유형을 저장할 수 있지만 조회 할때 좀 더 복잡할 것 같고 2번 방법은 저장하려는 정보 유형이 추가될 때마다 칼럼을 추가해줘야하지만 조회 할때 좀 덜 복잡한 것 같습니다. 혹시 이런 유형의 테이블을 설계할때 팁 같은게 있을까요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

손정현님의 프로필 사진

요구사항이 단순히 사용자의 contacts라는 정보만 저장하면 되는 것인가요? (부가 정보라고 하셨는데 테이블 명을 UserContacts로 하셔서요) 요구사항이 조금 더 명확해야 어떤 방식이 좋은지 알 수 있을 것 같아요. 예를 들면, - 필드 (이메일, 전화번호 등) 중복은 허용되는지 - contacts 정보만 저장되는 것인지 - 검색 (조회)할 때는 어떤 값들로 찾을 것인지, 어떤식으로 하는지 - 조회를 더 많이 하는지 생성/수정을 더 많이 하는지 - 조회나 생성/수정을 어느 시점에, 얼마나 많이/자주 하게 되는지 - 실 서비스의 기능을 위한 정보인지, 통계나 분석을 위한 정보인지 등등이요. 질문자님이 말씀하신 것처럼 1번 방법으로 하게 되면 조건들이 더 복잡할수는 있을것 같아요. 요구사항에 따라 다르겠지만 아마도 특정 contactType에 대한 조회가 필요하다면 계속 where 조건을 걸어주셔야 할 것 같아요. 2번은 조회 조건이 더 단순한게 맞을 것 같습니다. 결론은 1번인지 2번인지는 요구사항에 따라 다를 것 같지만 저라면 2번을 선택할 것 같습니다. 저는 설계하면서 "어 이거 좀 복잡해 지는 것 같은데?"라는 생각이 들면 KISS 원칙을 따라서 더 단순한 방법으로 설계하려고 합니다🙂

profile picture

익명

작성자

2022년 10월 17일

감사합니다!!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!