[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.
1
投稿した質問数 2
안녕하세요, 유저 테이블과 구독 테이블 설계 중 해결하기 까다로운 지점이 생겨 질문드립니다.
*현재 상황을 보다 이해하시는데 문제가 없으시기 위해 ai로 질문을 정리한점 먼저 말씀드립니다.
1. 현재 상황 및 서비스 정책
유저 테이블:
id(PK),email(UK)/ 탈퇴 시 소프트 삭제, 개인정보 보호를 위해 이메일 마스킹 필수.구독 테이블: 현재 활성화된 구독 정보 딱 1건만 관리 (이력은 별도 테이블 존재).
서비스 정책: 탈퇴 후 동일 이메일로 재가입 시, 기존 로우 복구가 아니라 새로운 로우로 Insert 됩니다. 단, 재가입 시 과거 구독 정보는 그대로 이어받아야 합니다.
2. 제가 고민해 본 방법들과 예상되는 문제점
생각한 방법 1) 구독 테이블이 유저 PK(
id)를 외래키로 바라보게 한다.예상 문제: 재가입 시 유저 테이블에 새 로우가 Insert 되면서 새로운 PK를 발급받기 때문에, 과거 PK를 바라보고 있던 구독 테이블과 연결 고리가 끊어집니다.
생각한 방법 2) 유저 테이블에 '이메일 해시(유니크X)'를 두고, 구독 테이블과 해시값으로 매핑한다.
예상 문제: 해시는 개인정보가 아니므로 탈퇴 후에도 유저 테이블에 남겨둘 수 있어 재가입 매칭은 가능합니다. 하지만 유저가 중간에 이메일을 변경하는 경우, 유저 테이블의 이메일 해시뿐만 아니라 구독 테이블 및 구독 이력 테이블의 해시값까지 전부 동시
UPDATE쳐야 하는 번거로움이 생깁니다.
3. 질문 요약
개인정보 보호를 위해 유저 테이블의 이메일 원본은 마스킹하면서도, 재가입 시 동일인임을 식별해 과거 구독 정보를 매칭해 주어야 합니다. 여기에 유저의 이메일 변경 가능성까지 고려해야 하는 상황입니다.
이 경우 구독 테이블의 매핑 키 체계를 어떻게 잡는 것이 가장 깔끔하고 현명한 DB 설계 원칙일까요? 실무에서 이런 케이스를 해결하는 정석적인 아키텍처 가이드가 궁금합니다!
回答 0
자연키 vs 대리키 실무질문
0
2
1
1:N 관계에서 중간테이블 (연관엔티티)
0
35
2
일대일 fk 위치
0
35
1
제 3 정규형 vs BCNF 정규형 차이점?
0
66
3
BCNF 질문
0
70
2
연관 엔티티 네이밍 규칙
0
46
1
진짜 강의 듣는거 너무 고문
0
132
1
28강 sql 파일 어딨나여?
0
84
1
2NF의 엄밀한 정의
0
71
1
comment 채번을 사용해야 하는 이유에 대한 설명이 필요합니다.
0
119
3
학습중인 수업자료를 받아볼 수 있을까요??
0
99
2
수업자료 pdf파일관련 건의 - 제목 링크위치 개선
0
85
2
서비스 운영 중 잘못된 테이블 설계 발견시 수정 시점에 대한 질문
1
102
2
실무적인 설계로 접근했을 때 제 2정규형 항상 만족?
0
80
1
슈퍼/서브 타입 joined 전략
0
71
2
created_at 관련 구현과 DB ENUM에 대해
0
71
1
M:N 관계의 연관 엔티티 설계 순서
0
77
2
데이터 역사성 훼손 문제
0
65
2
실무팁 - 등록자,수정자 컬럼 관리 관련 질문입니다.
0
83
1
구글이 이메일 변경을 허용하는 이유
0
122
1
order_item 테이블 (order_id, product_id) 유니크 제약조건 누락
0
100
2
BCNF 정규화에 대한 질문
0
121
2
주문, 결제 엔티티의 분류
1
124
1
실무에서의 복수 항목에 대한 관리 방법이 궁금합니다.
0
90
1

