- 포인트 적립 유형 식별
- 다양한 유형(이벤트, 플레이, 출석 등)의 포인트를 적립할 수 있어야 함
- 각 포인트가 어떤 유형에 의해 적립되었는지 구분 가능해야 함
- FIFO 방식의 포인트 차감
- 사용자가 포인트를 소모할 때는 가장 오래된 포인트부터 차감되어야 함
- 일부 차감도 되어야 함
- e.g. 13 포인트 사용
- before) earn_point = 10, earn_point = 10
- after) earn_point = 0, earn_point = 7
- 포인트 만료 처리
- 각 포인트 적립 건에는 만료 기간이 존재함
- 별도의 배치 작업을 통해 만료 기간이 지난 포인트는 자동으로 소멸 처리함
- 포인트 집계 처리
- 일별, 월별, 사용자별 등 통계 집계가 되어야 함
테이블
- 포인트 적립 내역
- 포인트 사용 내역
- 포인트 차감 내역
테이블
- 포인트 이벤트 기록
- 포인트의 적립, 사용, 만료 등 모든 이벤트를 기록
- 포인트 상세 기록
- 각 이벤트에 대한 세부 내역을 기록(포인트 차감 시 어느 적립 건에서 차감되었는지)