在这篇文章中预约场景可以总结为,在某一个时间去某一个地方办理一种事物。从预约的本质考虑,之所以会存在预约是因为我们所需要办理的事物是一种稀缺资源,或者我们想提高办理事物的效率亦或者我们想让办理者提高命中率。从这个角度考虑预约的限制条件包含三个组成部分,某一个时间段、某一个地方、需要处理的事物。
为了让预约这件事情符合它本身的定义,预约的时间段应该尽量保持在一个比较小的范围内,如果这个范围很大,比如几天,预约这件事情就失去了作用,所以预约的时间段的最大范围规定为在1天内,也就是说我们预约的事物应该在一天内完结。
在实际实际使用场景中我们把预约的时间段分得更细,预约时间分为二级或者更细的情况下还有三级的情况,比如选择某一天之后,还有某一个时间段(9:00-10:30,10:30-12:00),如果时间段分的足够多,可能我们还需要三级,要在时间段的上面增加上午、下午。
时间段如果存在多级就需要考虑一个问题,我们在实现预约界面的时候需要选择的级别是不确定的,可能是一个级别,我们只需要选择某一天,也可能是多个级别。这样我们设计时间段选择的时候,是需要动态的自动创建多级选择,基于这个需求,在关系型数据库中设计存储结构的时候需要适应这个需求,存储结构如(图1)所示,其实就是把时间段的存储视为字典的存储,字典包含主键Id、父节点Id、项名称、项值。
图1
原文:https://www.cnblogs.com/GiserPage/p/13047732.html