2012-07-04 4 views
0

사이트에 티켓 예약이 있습니다. 시간을 절약해야합니다. 그 후에 예약을 취소해야합니다.복잡한 시간 범위에 대한 데이터베이스 설계

drop reservation after 30 minutes after reservation 

복잡한 :

from 00:01 to 18:00 - drop after 20 hours, from 18:01 to 00:00 - drop after 16 hours. 

방법이에 대한 데이터베이스를 설계
나는 간단한 조건이 있습니까? 이제 간단한 TimeSpan 필드가 C# 클래스에 있습니다. 그리고 간단한 규칙에는 충분하지만 복잡한 규칙에는 적합하지 않습니다.
감사합니다.

추신. DB는 MS SQL Server 2008

+0

반드시 예약 시간을 절약하십시오. 논리 및 계산이 데이터베이스 외부에 있거나, 소급 효과를 사용하여 규칙을 변경할 수 있도록 하시겠습니까? – Jodrell

+0

@ Jodrell :이 필드는 CMS에서 편집 할 수 있습니다. – user1260827

+0

당신은 마지막 코멘트의 의미를 설명해야합니다. – Jodrell

답변

1

서버와 SQL을 사용하여 시간대를 제어하고 싶지는 않습니다. 이 작업은 응용 프로그램에서 수행해야합니다. 따라서 각 예약에 대해 타임 스탬프 (ExpiryTime 열 또는 원하는대로 데이터베이스에 저장 됨)를 만듭니다. ExpiryTime 열을 주기적으로 확인하여 지정된 예약이 만료되었는지 여부를 확인합니다. 예약을 제거하는 작업을 수행하는 경우 ...

이 정보가 도움이되기를 바랍니다.

+0

예약을 검색 할 때 where 절에서 만료 시간을 사용할 수 있습니다. 이전 기록을 역사적인 기록으로 남겨 두거나 활동이 소강 상태 인 동안 유지 보수 작업이나 작업으로 삭제하십시오. 내 의견을 대답하기 위해 +1. – Jodrell

+0

@Killercam : 나는 시간을 제어하고 싶지 않습니다. 그냥 설정하고 싶어. – user1260827

+0

확인. 'ReservationTime' /'BookingTime'이라고 불리는'Reservations' 테이블 (여러분이 이것 또는 뭔가 simalar를 가졌다 고 가정)에 컬럼을 생성하거나, 각 예약과 업데이트 스테이트먼트를 사용하여 데이터베이스에 만들어진 시간을 원하는만큼 씁니다 :'UPDATE 예약 SET ReservationTime = [SomeTime] WHERE BookingIndex = '{0}'; 또는 일부 쿼리 ... – MoonKnight