提供者:
– 能够指定重复出现的可用性.例如Mon 9-5,Tues 10-3等.
– 能够使数据变黑.例如 – 本周一没有.
– 能够添加单个,而不是重复发生的日期/时间段.例如 – 这个星期六9-5.
顾客:
– 能够预订单人约会.
– 能够预订重复预约. (每周一9-4).
到目前为止,我想出了3个选项:
>将计划划分为30分钟的间隔,并为每个间隔/提供者对创建数据库条目.每个间隔可以是免费的或预订的.当客户预约时,我们将间隔标记为已预订.这种方法的问题在于它浪费了大量空间,而且我不确定搜索性能对于重复出现的预订有多好.
>将每个可用期保存为“事件”.如果它重复出现,请复制该事件.搜索免费插槽时,请搜索预订表以确保没有重叠预订.在这种情况下,搜索重复出现的插槽似乎有点尴尬.要查找明年9月5日可用的所有提供商,我们必须搜索所有匹配的“事件”,并找到所有具有52个匹配事件的提供商.
>将每个可用期保存为“事件”.如果它重复出现,请添加一个标志.当搜索免费插槽时,搜索预订表以确保没有重叠预订.它使搜索重复约会变得更容易.为了“黑掉”假设重复出现的插槽,我们可以插入假预订.
解决方法
a)使用基本列eventdate,starttime,endtime以及事件的其他详细信息 – 这些是繁忙时间,因此您在日历上阻止
b)重复事件 – 添加列:
– isrecurring – 默认为0
– recurrencetype(每日,每周,每月)
– recurevery(重复发生时的计数)
– 星期一,星期二,星期三,星期四,星期五,坐着,太阳 – 每周复发的日子
– 月和月 – 每月复发
2.在日历上创建定期事件时遇到了挑战:
– 如果你一次创建所有这些(比如说接下来的6个月),每当你编辑一个时,其他的都必须更新
– 如果您只在前一个事件通过时创建了一个事件,那么您需要复杂的逻辑来显示未来日期的日历
3.您还需要规则来处理是否允许事件相互重叠,使用什么资源,事件可以安排到多远