背景 (非常に簡略化): Web サイトで販売するバナー スペースがあります。バナーは特定の開始日と終了日に予約できますが、このバナーを二重に予約することはできません。バナーは 1 年に複数回予約できますが、同じ日に複数回予約することはできません。
私の問題: 予約を保存するときに、ユーザーが開始日/終了日を入力すると、この開始日/終了日内にバナーが複数回予約される可能性があり、開始日/終了日内の空き日を自動的に予約したい.
例:
s|aaaaaaa|s1------e1|aaaaaaaaa|s2------e2|aaaaaa|e
s / e = ユーザーが入力した予約日。 s1 - e1 = 最初の予約。 s2 - e2 = 2 番目の予約。 aaa.. = 利用可能な日付範囲。
tsql で、aaa.. (利用可能な日付範囲) の開始日/終了日を計算したいと思います。次に、それらを予約テーブルに挿入します。
予約表は次のようになります。
BookingId------BannerId-----StartDate-----ExpiryDate
000000001------00000001-----2012-11-01----2012-11-05
000000002------00000001-----2012-11-10----2012-11-15
000000003------00000001-----2012-11-16----2012-11-20
000000004------00000001-----2012-12-01----2012-12-05
したがって、ユーザーが 2012 年 11 月 4 日の開始日と 2012 年 12 月 10 日の終了日を入力するとします。利用可能な日付は.. 2012-11-06 から 2012-11-09、2012-11-21 から 2012-11-30、2012-12-06-2012-12-10 です。
これを行う方法についてのアドバイスをありがとう。