<aside>
👨💻 쿠폰 발급 테이블 설계
</aside>
쿠폰 시스템에서 '쿠폰 발급 최대 수량'과 '발급된 쿠폰 수량'을 따로 저장하는 방법과 '남은 쿠폰 수량'을 저장하는 방법 중 어떤 것이 좋은지에 대해 얘기해볼게.
1. '쿠폰 발급 최대 수량'과 '발급된 쿠폰 수량' 저장
이 방법은 최대 수량과 현재까지 발급된 수량을 각각 저장하는 방식이야.
장점:
- 동시성 문제 해결: 여러 사용자가 동시에 쿠폰을 발급받는 상황에서도 정확한 발급 수량을 관리할 수 있어.
- 추적 용이: 발급된 쿠폰 수량을 정확히 기록하므로 누가 언제 어떤 쿠폰을 발급받았는지 추적하기 쉬워.
- 데이터 무결성: 발급된 수량이 명확히 기록되므로, 발급 과정에서의 오류를 쉽게 찾을 수 있어.
단점:
- 계산 필요: 남은 수량을 계산하려면 최대 수량에서 발급된 수량을 빼야 하므로 조회가 다소 복잡해질 수 있어.
- 추가 쿼리 필요: 남은 수량을 확인할 때마다 계산해야 해서 쿼리가 추가될 수 있어.
2. '남은 쿠폰 수량' 저장
이 방법은 남은 수량을 직접 저장해서 관리하는 방식이야.
장점:
- 조회가 빠르다: 남은 수량을 바로 확인할 수 있어서 발급 가능 여부를 즉시 알 수 있어.
- 간단한 쿼리: 발급 시 남은 수량을 감소시키는 단순한 쿼리로 처리할 수 있어.