중급닌자 연습생 2020. 12. 18. 16:21

1단계: 우선 어드민의 회원 관리 화면에서 회원 관련 데이터는 무엇이 있는지 나열해보았다.

- 회원정보 조회는 검색과 결과로 구분된다. 검색 시에는 어떤 항목을 기준으로 검색하는지, 결과에는 어떤 데이터가 보여지는지 구분했다.
- 설명: 해당 항목의 셀렉트 박스나 라디오 버튼을 보면 해당 항목에 어떤 데이터가 쌓이는지 짐작할 수 있다.
- 테이블: 각 데이터가 어떤 테이블에서 왔을지 추측했다. 일단 회원 기본정보 테이블이 있을 것이고, 주문금액과 같은 데이터는 주문 관련 테이블에서 왔을 것이다.
- 등록 방법: 카페24 어드민의 경우는 프로모드와 스마트모드를 지원하고 있는데, 두 모드에서 중복되는 데이터 최소한의 회원 관련 필수 데이터라고 생각했다.

정리한 내용은 다음과 같다.


2단계: 파악한 데이터 특성을 바탕으로 회원 관련 테이블을 구성했다.

회원가입 시나리오를 떠올려보면, 사용자는 이용약관에 동의하고 개인정보를 입력한다. 따라서 기본정보를 저장하는 테이블약관 동의여부를 저장하는 테이블이 있을 것이다. 그리고 약관 자체는 별도의 테이블에 저장해야 할 것이다. 또한 사용자 로그(서비스 이용이력)을 저장하는 테이블이 필요하다.

회원 등급은 처음에 회원 정보 테이블에 넣었다가 약관처럼 변경이력 관리를 위해 별도의 테이블로 구분했다.

불필요하게 데이터 공간을 낭비하지 않기 위해 사용자에게 직접 입력받는 데이터를 최소화했다. 가령 쿠팡의 경우는 아이디(이메일), 비밀번호, 이름, 휴대폰번호 4가지 항목만 입력받는다.

+부가적으로 아이디는 기본키로 지정하지 않는 것이 낫다고 한다. 아이디 외의 별도의 회원 코드를 부여하여 유니크한 값을 관리해야 회원 탈퇴 시 해당 아이디로 재가입하는 경우, 개인정보와 로그정보를 구분해서 관리할 수 있다.(는 내용을 다음의 블로그에서 참고했다)

 

회원 정보 테이블 설계 시 고려 사항

회원 정보 테이블을 만들 적에  대부분 하나의 테이블에 사용자 정보 ( 이름/전화번호/주소/이메일 등등 ) 을 모두 몰아 넣는 경우가 있는데 이는 좋지 않은 방법이다. 안좋은 케이스를 예로 들

linuxism.ustd.ip.or.kr

+현재는 가장 기본적인 아이디 회원가입 방식만 고려했지만 간편 가입 방식을 도입한다면 SNS 인증값을 관리하는 테이블이 필요할 것이다. SNS 인증 테이블에는 인증코드, 인증구분(카카오톡, 구글, 네이버 등) 컬럼이, SNS 인증 이력 테이블에는 SNS 인증여부(P/F/Null) 컬럼이 추가될 것이다.


3단계: 테이블간 관계를 설정했다.

앞서 테이블 정의 시 지정한 기본키를 바탕으로 외래키를 지정했다.

회원등급은 회원등급코드로 관리하고 회원등급 변경이력은 서비스로그 테이블에서 아이디로 참조하도록 했다.

마치며
데이터 모델링을 너무 오랜만에 해서 삽질을 많이 했다. 일단 카페24는 저장하는 데이터가 많고 (가령 결혼유무나 자녀유무 같은 요즘은 이커머스에서 수집하지 않는 개인정보들) CRM 연동 데이터들도 있어서 비교하면서 중복 소거하고 나열하는데 시간이 오래 걸렸다. 다음 분석부터는 좀 더 빨라지지 않을까.. 테이블 정의도 무결성이나 식별 관계를 가려내기 위해 다른 사례들을 찾아보고 대입하는 과정에서 어려움이 있었다. 테이블 관계가 완벽하지는 않지만 최소한 회원 관리에 있어 필요한 데이터가 무엇인지 나열하고 구분할 수 있게 되었다.
사용툴: MySQL, PowerPoint

참고자료

 

[1편] DB의 시작, 기획자가 알아두면 좋은 ERD 기초!!

안녕하세요, 미시깽입니다. 요즘 화두가 되고 있는 주제 중의 하나가 바로 빅데이터(Big Data) 입니다. 어쩌면 빅데이터라는 키워드가 이슈로 떠오른 이유를 추론해보면, IT가 발전되며 시간이

www.yamestyle.com

 

[DATABASE] 식별과 비식별 관계

ERD를 작성하다보니 테이블간의 관계를 설정할 때 두 테이블의 관계가 식별관계인지 비식별관계인지 판단함에 어려움을 겪었다. 찾아본 여러 참조문서를 종합해 정리해놔야겠다. 우선 앞에 내

velog.io

 

DB전문가 기술자료 - 데이터모델링이란 - 3.속성(Attribute)

1. 속성(Attribute) 정의 속성(Attribute)이란 정보를 나타내는 최소의 단위로써 엔티티의 성질, 분류, 수량, 상태, 특성 등을 나타내는 세부 항목이다. 2. 속성(Attribute) 의 유형 속성의 유형 &...

tech.devgear.co.kr


+ 정책 설계 방법에 대해 더 자세히 알고 싶다면

 

기획자가 알아야 할 정책 설계 가이드: 회원 정책(템플릿 제공)

아직도 화면 중심으로 서비스를 기획하고 있다면 / 정책 설계의 4가지 요소

publy.co