포인트 내역 질문을 다시 드리고 싶습니다
본문
아이디 | 이름 | 닉네임 | 포인트내용 | 포인트 | 일시 | 만료일 | 포인트합
test 홍길동 길동이 로그인 100 6/5 6/10 200
1.이런식으로 포인트는 내역이 계속 생기잖아요~? (db에)
2. 그리고 포인트만료가 되면 또 만료됐다고 내역이 생기더라구요..
전 내역이 쌓이는게 싫어서 만료가 됐든, 포인트가 생기든
최초 1건에서 업데이트만 시키고 싶은데요
노력중이오나 해결이 나질 않고 있습니다. 고견 부탁드립니다 ㅠ
- - - - -
현재까지 해본건 lib/common.lib.php 파일 내,
insert into 대신 update를 넣어봤는데. 포인트 계산이 이상하게 되고 있습니당..
// 포인트 건별 생성
.
.
$po_mb_point = $mb_point + $point;
$sql = " insert into {$g5['point_table']}
.
.
답변 3
정말 위험하신 생각입니다.
리스트에 쌓이는 경우는 포인트 획득 뿐만 아니라 반환을 고려해서
쌓이는 것입니다.
그래서 만료가 있는것이구요.
만약 인서트가 아닌 업데이트가 될경우
글작성시 포인트 생성 기점으로
글작성 -> 삭제
무한으로 포인트 생성이 가능합니다.
왜 쌓이는게 싫으신건지 이유가 궁금합니다.
오늘도 차단할 한분이 생겼네요~ ㅎㅎ
사이트 내 포인트 게임을 설치했는데. 정말 빠른 속도로 포인트 내역이
쌓이는 것을 보고 (insert), 이것을
유저마다 최근 포인트 내역만 남기고 계속 update 되게 할 순
없을까? 라는 궁금증이 있었습니다.
나중에 볼겸 짧게 정리를 하자면
저의 사이트는 로그인 혹은 관리자가 부여하는 포인트만 적립되므로
가능해 보였습니다.
common.lib 에서 포인트 내역이 없으면? 최초 한번만 insert 해주고
그 이후는 update 되도록 수정하여
이미 목적을 달성하게 되었는데요.
여기서 더 욕심을 내어
만약 활동 보상(댓글 포인트)까지 적립하게 한다면?
댓글을 지웠다 썼다할 경우 계속 적립되므로 (내역이 없는 update 라서)
멤버 여분필드에 댓글을 작성할때 마다 +1 => 하루에 5 까지 update 되도록 하여
(댓글은 계속 작성가능하나 ,카운팅은 5에서 멈춤)
댓글을 지웠다 다시써도, 여분필드에 5까지 카운팅 돼 있으면 더이상 댓글 포인트가
적립되지 않도록 하였습니다.
하루에 제한없이 댓글 포인트 주는 것 보다 이부분이 더 마음에 들었습니다
그럼 댓글 5회부터 영원히 적립 불가? 이부분은 ->
다음날 이후로 넘어가면(날짜비교) 자동으로 카운팅이 초기화 되어
문제를 해결하였습니다.
결국 게임 포인트, 댓글포인트, 글쓰기 포인트 등
유저마다 내역 1건만 남기고 update로만 해결할 수 있었습니다.
다만 각 사이트 상황에 따라 이것을 절대 적용할 수 없는 상황이 많을 것 같습니다.
호기심 해결!