2010-07-10 6 views
2

제 질문에 대한 명백한 대답은 "그것이 달려 있습니다"라는 것을 이해합니다. 그 길을 벗어나서, 저는 여러분 중 한 명 (혹은 그 이상)이이 문제에 접근하는 일반적인 방법을 찾도록 도와 줄 수 있기를 희망합니다 ...시간에 따른 items_for_sale에 대한 업데이트와 관련된 데이터베이스/스키마 디자인 질문

나는 위젯 데이터베이스를 디자인하고 있습니다. 시간이 지남에 따라 각 항목의 가격은 필연적으로 변경됩니다. 내 질문에 우리가 이러한 변화를 추적해야 하는가? 그렇다면 어떻게해야 하는가? 가격 관련 테이블 & 날짜? 가격 변경을 추적하는 것이 일반적 이니, 말하자면, 3 년 후를 되돌아보고 무엇이 바뀌 었는지 볼 수 있습니다. 그게 얼마나 귀중 할 수 있는지 알 수 있었지만 오버 헤드의 가치가 있습니까?

주문 테이블은 판매 날짜의 현재 가격을 캡처합니다.

생각?

감사합니다.

답변

1

직감이 좋습니다. 정보를 잃어 버리지 마십시오!

사용하여 SQL 서버 구문이 같은 이름의 테이블을 만듭니다 (?) 또는() 당신은 당신의 가격에 트리거에서 테이블을 채울 수 있습니다

CREATE TABLE PriceHistory (
PK_PriceHistory int IDENTITY(1,1) PRIMARY KEY, 
FK_Item int, -- foreign key to your item table 
Price money, 
ChangedAt datetime -- captured at the time of change 
) 

을 표 가격은 당신이 할 수 변경 될 때 있도록 이전 가격을 가격 내역 테이블에 자동으로 기록합니다. 이렇게하면 필요한 경우 가격 기록표를 쿼리하여 과거 가격을 결정할 수 있습니다. 나는 트리거의 팬이 아니에요하지만이 ... Tahbaza의 대답에 추가

0

하나에 대한 고전적인 사례이다

중요성은 단지 역사적인 가격을 추적하지 않을뿐만 아니라 완화 가격 미래의 변화. "변경된 시간"또는이 경우 실제로 "유효 기간"날짜없이 가격을 적용하지 않으면 데이터베이스에서 정확한 날짜에 가격을 변경해야합니다. 날짜가 유효하면 날짜가 맞으면 새로운 가격을 입력하고 지정한 날짜에 "현재"가격이되게 할 수 있습니다.