inflearn logo
강의

講義

知識共有

キム・ヨンハンの実戦データベース - 設計編1、現代的データモデリング完全征服

複合キーの設計

[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.

解決済みの質問

50

obi

投稿した質問数 2

0

안녕하세요, 유저 테이블과 구독 테이블 설계 중 해결하기 까다로운 지점이 생겨 질문드립니다.
*현재 상황을 보다 이해하시는데 문제가 없으시기 위해 ai로 질문을 정리한점 먼저 말씀드립니다.

1. 현재 상황 및 서비스 정책

2. 제가 고민해 본 방법들과 예상되는 문제점

3. 질문 요약

개인정보 보호를 위해 유저 테이블의 이메일 원본은 마스킹하면서도, 재가입 시 동일인임을 식별해 과거 구독 정보를 매칭해 주어야 합니다. 여기에 유저의 이메일 변경 가능성까지 고려해야 하는 상황입니다.

이 경우 구독 테이블의 매핑 키 체계를 어떻게 잡는 것이 가장 깔끔하고 현명한 DB 설계 원칙일까요? 실무에서 이런 케이스를 해결하는 정석적인 아키텍처 가이드가 궁금합니다!

sql mysql dbms/rdbms 소프트웨어-설계 SQLD

回答 1

1

yh

안녕하세요. obi님

우선 제 생각에 비즈니스 정책을 단순하게 변경하는게 가장 좋을 것 같아요.

하지만 그게 어려운 상황이라면, 중간 테이블을 하나 만들어서 해결하는 것이 필요합니다.

예를 들어서 users -> subscribers -> subscriptions 구조를 만드는 것이지요.

 

users: 로그인 계정
subscribers: 구독 권리를 가진 주체
subscriptions: 현재 구독 정보

 

users는 탈퇴 후 재가입하면 새로 생길 수 있으니, 구독이 직접 바라보면 안 됩니다.

대신 구독은 오래 유지되는 subscriber_id를 바라보게 합니다.

그래서 재가입 시에는 새 users 로우를 만들고, 기존 subscriber_id에 다시 연결합니다.

즉, 핵심은 구독의 FK를 user_id가 아니라 subscriber_id로 바꾸는 것입니다.

감사합니다.

아주 작은 정오표 전달드립니다.

0

28

2

실제로 작은 기업에서 기획 롤

1

21

1

order_product 까마귀발

0

39

2

자연키 vs 대리키 실무질문

0

26

1

1:N 관계에서 중간테이블 (연관엔티티)

0

53

2

일대일 fk 위치

0

43

1

제 3 정규형 vs BCNF 정규형 차이점?

0

95

3

BCNF 질문

0

76

2

연관 엔티티 네이밍 규칙

0

51

1

진짜 강의 듣는거 너무 고문

0

139

1

28강 sql 파일 어딨나여?

0

92

1

2NF의 엄밀한 정의

0

73

1

comment 채번을 사용해야 하는 이유에 대한 설명이 필요합니다.

0

123

3

학습중인 수업자료를 받아볼 수 있을까요??

0

102

2

수업자료 pdf파일관련 건의 - 제목 링크위치 개선

0

88

2

서비스 운영 중 잘못된 테이블 설계 발견시 수정 시점에 대한 질문

1

107

2

실무적인 설계로 접근했을 때 제 2정규형 항상 만족?

0

81

1

슈퍼/서브 타입 joined 전략

0

74

2

created_at 관련 구현과 DB ENUM에 대해

0

75

1

M:N 관계의 연관 엔티티 설계 순서

0

81

2

데이터 역사성 훼손 문제

0

67

2

실무팁 - 등록자,수정자 컬럼 관리 관련 질문입니다.

0

84

1

구글이 이메일 변경을 허용하는 이유

0

126

1

order_item 테이블 (order_id, product_id) 유니크 제약조건 누락

0

100

2