회원 DB를 만들고 있는데.. <div><br></div> <div>포인트 관련해서 어떤게 좋을지 헷갈리네요....</div> <div><br></div> <div>기간에 따른 포인트 증감을 확인할 수 있어야 하니까...</div> <div><br></div> <div>획득하거나 잃을때마다 로그성 데이터를 넣어줄 테이블이 필요한데...</div> <div><br></div> <div>정작 사용자의 현재 보유 포인트를 알려면 별도 테이블에 포인트 항목을 만들어줘야 하는게 맞는지...</div> <div><br></div> <div>그렇다면 이력테이블과 현재값테이블 간 데이터 검증을..</div> <div><br></div> <div>DB단에서 해줘야하는지 프로그램에서 해줘야 하는지...ㅠㅠ</div> <div><br></div> <div><br></div> <div>조언 부탁드립니다....</div> <div><br></div> <div><br></div> <div>1. 회원 테이블</div> <div>- 회원id(고유)</div> <div>- 보유포인트</div> <div><br></div> <div>2. 포인트 테이블</div> <div>- 포인트고유번호(고유)</div> <div>- 회원id(외래키)</div> <div>- 포인트증감값(+, -)</div> <div>- 포인트 사유</div> <div>- 일시</div> <div><br></div> <div>위와 같이 테이블을 만드는게 맞을 것 같구요...</div> <div><br></div> <div>두 테이블간 값 검증이 걸리더라구요.</div> <div><br></div> <div>생각해본 방법들은...</div> <div><br></div> <div><br></div> <div>(1) <span style="font-size:9pt;line-height:1.5;">저장프로시저(?)를 이용해서 항상 두개의 테이블을 한꺼번에 작업</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;">(2) 트리거를 이용해서 포인트 테이블에 변경이 있을때마다 회원 테이블의 포인트 값을 변경해줌(update)</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div>(3) 프로그램단에서 처리. (1)의 내용을...</div> <div><br></div> <div>(4) 그 외 방법. 회원 테이블에서 보유포인트 값을 관리하지 않고, 별도의 뷰를 만들어서 조회를 할때마다 포인트 테이블에서 회원id로 그룹을 만들어서 sum으로 포인트를 계산해주는 방법.................</div> <div>-> 생각해보니 이 경우 0 포인트 이하인지 아닌지 체크하려면 또 무언가를 해야되겠군요.</div> <div><br></div> <div>(5) 테이블 구조를 위와 같은 구조가 아닌 다른 방법으로 짜는 경우.</div> <div><br></div> <div><span style="font-size:9pt;line-height:1.5;">데이터 사용은 회원 1인당, 포인트 조회(1일 수시) > 포인트 차감(1일 수시) > 넘사벽 > 포인트 충전(1주일~한달에 한번) 순으로 많을 것 같습니다.</span></div> <div><br></div> <div>DB 부하와 값을 검증하는 것 까지 생각한다면 어떻게 짜는게 좋을까요?</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.