我们正在尝试设计一个程序,允许用户根据导师的可用性预订导师。因此,我们希望导师告诉我们他们何时(什么时间、哪天等)他们有空/没有空,当用户预订特定日期和时间时,我们只想向该用户显示该特定日期有空的导师和时间。
例如,导师可以告诉我们他们在晚上 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,我将首先查询 non-availability 表以确保 4/20 10 AM 没有冲突,然后查询 recurring_non_availability 表以确保它们是星期五没有冲突(4/20 是星期五)上午 10 点。我不确定这种设计是否能给我最好的导师可用性的图片。