SQL Server 데이터베이스를 시작 날짜와 종료 날짜로 제한하여 리소스를 예약 할 수 없도록했습니다 (즉, 중복되거나 예약이 중복되지 않음). 날짜 범위에 대한 SQL Server 조건
내 자원 테이블 의 ResourceId, STARTDATE, 종료 날짜, 상태처럼 보이는 그런 번호 그래서 자원 번호를 말할 수있다 가정하자 1. 2011 년 1 월 1 일부터 2011 년 1 월 16 일까지는 예약 할 수 없으며 같은 리소스에 대해서는 2011 년 1 월 10 일부터 2011 년 1 월 18 일까지 별도 예약이 필요합니다.
두 가지 더 복잡한 경우 리소스의 StartDate는 리소스의 EndDate와 같을 수 있습니다. 따라서 2011 년 1 월 8 일부터 2011 년 1 월 16 일까지 및 2011 년 1 월 20 일부터 2011 년 1 월 20 일까지 1 월 16 일부터 17 일까지는 괜찮습니다 (즉, 한 사람이 다른 날 체크 아웃 한 당일에 체크인 할 수 있음).
또한 상태 필드는 리소스 예약이 활성 또는 취소 중임을 나타냅니다. 따라서 우리는 취소 된 모든 예약을 무시할 수 있습니다.
절약 할 때 Code (Stored Procs and C#)에서 이러한 중복 또는 이중 예약 예약을 방지했지만 DB Contraint를 추가하여 추가 보호 계층을 추가하고자합니다.
SQL Server에서 가능합니까? 사전
방아쇠를 당기는 등의 일을 할 수는 있지만, 제약 조건에서 필요한 것을 할 수 있다고는 생각하지 않습니다. – pmbAustin
[날짜 범위 중복 체크 제약] (http://stackoverflow.com/questions/12035747/date-range-overlapping-check-constraint) – SqlZim