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
운영게시판
최근게시물
MS-SQL Q&A 4660 게시물 읽기
No. 4660
마일리지에 유효기간이 들어갈떄,,
작성자
허양민(hym77)
작성일
2009-03-04 19:54
조회수
6,305

안녕하세요...


MSSQL 기술에 관한 질문이라기 보다, 테이블 구조에 관한 질문이라,, 게시판 성격과 맞는지 잘 모르겠습니다.


만일, 게시판에 성격과 틀리면 바로 삭제 하겠습니다..


----------------------------------------------------------------------------------------------------


이번 프로젝트에서 마일리지에 유효기간을 부여해야 하는 상황에 있습니다.

 

즉,  유효기간이 1년이라는 설정하에...

 

2008-01-01날에 구매해서 휙득한 포인트는 2009-01-01일까지 밖에 사용할 수 없는거죠.

 

DB쪽 지식이 짧다보니까 테이블 구조부터 머리속에서 그려지지 않아,,

 

고민 고민하다가 질문 올립니다.

 

관련된 링크라던가, 짧은 설명글이라도 많은 도움 될것 같습니다.

 

감사합니다.

이 글에 대한 댓글이 총 1건 있습니다.

Create Table T구매
(
     구매ID        int not null,    (PK)
     구매회원ID   int not null,   
,
     ....

     구매일          Datetime not null,
     .....
     구매취소_YN  bit
)


Create Table T마일리지 
(
     마일리지_ID          int,

     구매ID                  int,  (FK)
     expire_date          datetime,
     ...
     마일리지내역 
     ...
     마일리지취소_YN    bit
)

한개의 테이블에 표현할 수 도 있겠지만 두 Entity간의 관계가 1:1은 아니므로 
(어떤 구매상품은 마일리지가 안쌓일수도 있으니까)
테이블을 분리하시는 것이 좋을듯 하구요. 조인이 부담스러운 경우 통계테이블을 자동화하도록 만드것도

데이타 건수가 많을 경우 유용할 수 있습니다. 물론 이런 자동화 작업을 하는것은 SP를 만들거나 Biz에서

처리하는 방법 등등이 있을겁니다.

질문하신 유효기간은        

T구매테이블에 Insert나 Update, Delete 각각에 대한 DML Trigger를 만들어 
각각에 대해서 동시에 두테이블이 업데이트 되도록 하시면 됩니다. 

음, 또 Biz 로직에서 양쪽테이블에 업데이트 하는 방법도 있겠지요. 어떤것이든 적절히 선택하시면 
됩니다. 


다른 곳에도 질문을 하셨더군요. 도움이 되셨기를 ....

김호범(trueccie)님이 2009-03-04 23:42에 작성한 댓글입니다.
이 댓글은 2009-03-05 01:43에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
4664피벗 질문입니다 [1]
김태호
2009-03-10
7133
4662xp_cmdshell 오류
김환범
2009-03-09
6305
4661한개의 테이블에서 하위코드 가져오기.. [1]
조중연
2009-03-05
6871
4660마일리지에 유효기간이 들어갈떄,, [1]
허양민
2009-03-04
6305
4659인덱스 크기는 어느정도가 좋을까요? [1]
karerina
2009-03-04
6894
4658MS-SQL 2000 쿼리 질문 (재귀?) [5]
우세연
2009-03-04
8883
4657날짜형 변환 1시간단위 변경은? [3]
최덕현
2009-03-02
9283
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다