私たちは、ユーザーが家庭教師の空き状況に基づいて家庭教師を予約できるようにするプログラムを設計しようとしています. そのため、チューターにいつ (何時、何日など) 利用可能/利用可能でないかを教えてもらい、ユーザーが特定の日時に予約した場合、その特定の日に利用可能なチューターのみをそのユーザーに表示したいと考えています。そして時間。
たとえば、家庭教師は、午後 9 時から午後 5 時まで MW を利用できることを教えてくれます。
どうすればそのようなテーブルを設計できますか?
私は次のことを考えていました
non-availability:
(this allows tutors to tell me they are not available on a specific date ... say 4/15/2012 10PM)
date date
time_start datetime
time_end datetime
recurring_non-availability
(this allows tutors to tell me that they are not available every Monday from 9-5pm)
dayOfWeek enum
time_start
time_end
基本的には、チューターは曜日ごとに、空いている時間を指定できます。また、利用できない特定の日付を指定することもできます。ユーザーが 4/20 10AM のような特定の日付の家庭教師を必要としている場合、最初に非可用性テーブルを照会して 4/20 10 AM の競合がないことを確認し、次に recurring_non_availability テーブルを照会して競合がないことを確認します。金曜日の競合はありません (4/20 は金曜日です) 午前 10 時。このデザインが家庭教師の空き状況を最もよく表しているかどうかはわかりません.