게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
회원 포인트 DB 테이블을 어떻게 설계 해야할까요?
게시물ID : programmer_16395짧은주소 복사하기
작성자 : 물어라이코스
추천 : 0
조회수 : 4923회
댓글수 : 5개
등록시간 : 2016/03/28 15:39:19
옵션
  • 본인삭제금지
회원 DB를 만들고 있는데..

포인트 관련해서 어떤게 좋을지 헷갈리네요....

기간에 따른 포인트 증감을 확인할 수 있어야 하니까...

획득하거나 잃을때마다 로그성 데이터를 넣어줄 테이블이 필요한데...

정작 사용자의 현재 보유 포인트를 알려면 별도 테이블에 포인트 항목을 만들어줘야 하는게 맞는지...

그렇다면 이력테이블과 현재값테이블 간 데이터 검증을..

DB단에서 해줘야하는지 프로그램에서 해줘야 하는지...ㅠㅠ


조언 부탁드립니다....


1. 회원 테이블
- 회원id(고유)
- 보유포인트

2. 포인트 테이블
- 포인트고유번호(고유)
- 회원id(외래키)
- 포인트증감값(+, -)
- 포인트 사유
- 일시

위와 같이 테이블을 만드는게 맞을 것 같구요...

두 테이블간 값 검증이 걸리더라구요.

생각해본 방법들은...


(1) 저장프로시저(?)를 이용해서 항상 두개의 테이블을 한꺼번에 작업

(2) 트리거를 이용해서 포인트 테이블에 변경이 있을때마다 회원 테이블의 포인트 값을 변경해줌(update)

(3) 프로그램단에서 처리. (1)의 내용을...

(4) 그 외 방법. 회원 테이블에서 보유포인트 값을 관리하지 않고, 별도의 뷰를 만들어서 조회를 할때마다 포인트 테이블에서 회원id로 그룹을 만들어서 sum으로 포인트를 계산해주는 방법.................
-> 생각해보니 이 경우 0 포인트 이하인지 아닌지 체크하려면 또 무언가를 해야되겠군요.

(5) 테이블 구조를 위와 같은 구조가 아닌 다른 방법으로 짜는 경우.

데이터 사용은 회원 1인당, 포인트 조회(1일 수시) > 포인트 차감(1일 수시) > 넘사벽 > 포인트 충전(1주일~한달에 한번) 순으로 많을 것 같습니다.

DB 부하와 값을 검증하는 것 까지 생각한다면 어떻게 짜는게 좋을까요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호