database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31224 게시물 읽기
No. 31224
적립금(마일리지) 적립, 사용, 만료소멸 프로세스 도움 부탁드립니다.
작성자
조현철(kreatist)
작성일
2019-03-21 16:41
조회수
2,290
안녕하세요. 
적립금 만료 로직을 만들고 있는데, 어떻게 접근을 해야 할지 도움을 받고자 합니다. 
 
sno, m_no, emoney, memo, regdt, exp_date, status 
1, 1002, 5000, 회원가입, 2018-01-01, 2018-06-30, N 
2, 1002, 2000, 제품구입, 2018-02-01, 2018-07-30, N 
3, 1002, -500, 결제사용, 2018-03-01, 2018-08-27, N 
4, 1002, 1000, 제품구입, 2018-04-01, 2018-09-27, N 
5, 1002, 1000, 제품구입, 2018-05-01, 2018-10-27, N 
6, 1002, -5000, 결제사용, 2018-06-01, 2018-11-27, N 
 
오늘이 2018-08-01이라고 가정하면, 만료일이 지난 적립금은 소멸을 시켜야 합니다. 
위 테이블상에서 만료 대상 적립금은 7000입니다. (sno=1, 2) (exp_date < 2018-08-01) 
그러나, 이미 일부를 사용(-5500)했기 때문에 (sno=3, 6) 
사용한 만큼을 제하고 나머지를 소멸시켜야 합니다. 
 
어떤 로직으로 처리해야 할지 막막하네요. 
 
1. 적립금 만료를 위한 필드를 추가해야 할 것이 있을지, 
2. 어떤 쿼리로 처리를 해야할지 도움 좀 부탁드립니다. 
 
* status 필드는, 적립금을 사용할 경우(sno=3) 사용 직전의 적립된 적립금중 소멸되지 않은 적립금에 일부 또는 전부를 사용했음을 기록하기 위해 만들었습니다. 
* m_no(회원코드) 
* regdt(지급/차감일) 
* exp_date(만료일=지급/차감일+180일) 
* status(N=미사용,Y=사용,E=만료소멸)
이 글에 대한 댓글이 총 1건 있습니다.

1. 만료 시점에 남은 금액을 사용금액으로 해서 입력하는건 어떤가요?
  - 7, 1002, -1500, '만료소멸', '2018-07-30'
  - 만료일 다음날 새벽에 배치 프로그램으로 입력하는 방식
2. 사용포인트는
  - 만료기간이나 상태가 무의미 할것 같네요?
3. MySQL 버전이 어떻게 되나요?
  - 8.0 이상이면 분석함수 사용이 가능하여 편리합니다.

마농(manon94)님이 2019-03-21 18:22에 작성한 댓글입니다.
이 댓글은 2019-03-21 18:27에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
31227마일리지테이블 막히는 부분좀 도와주세요.. [2]
오진솔
2019-04-02
2222
31226쿼리가 index를 타지 않습니다.
최봉수
2019-04-02
2161
31225MySQL 클론 관련 문의 드립니다. [3]
지나가다
2019-03-22
2502
31224적립금(마일리지) 적립, 사용, 만료소멸 프로세스 도움 부탁드립니다. [1]
조현철
2019-03-21
2290
31223쿼리좀 빠르게 만들어 주세요 ㅠ.ㅠ [5]
이기자
2019-03-20
2481
31221Master-Slave를 사용한 복제시 특정Row만 복제 또는 특정 이벤트 발생 시 복제 [3]
정성철
2019-02-26
2310
31220서비스에 사용중인 DB database를 동기화 하는 방법 [5]
정성철
2019-02-26
2288
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다