我正在尝试建立一个医生预约系统,在线患者将有两个选择:
- 第一次访问(这次访问应该是 20 分钟)
- 跟进访问(此访问应为 10 分钟)
约束:
- 价格会根据第一次/后续枯萎而有所不同
- 医生可能在插槽之间有休息时间
- 系统界面将在预订插槽时支持这两个选项
- 我们需要插槽之间的最小间隙时间才能达到最大值。医生可用性的使用
到目前为止我们完成的模型是基于创建一个如下所示的 Doctor Slot 表

如果 DoctorSlot 为 N 且 N=10 分钟,请考虑以下示例
案例 第一次 if(N*2)== Free 保留块两个插槽而不是一个
案例跟进 if(N)==Free Make Reservation Block 1 slot
示例医生:9:00 至 9:10 医生:9:10 至 9:20 医生:9:20 至 9:30
病例首次向患者展示 9:00 至 9:20
挑战:
- 附加时间从 9:00 到 9:20(医生的插槽之间可能有一个缓冲时间(医生休息))
- 我们将从数据库中获得两个插槽 ID 而不是一个(哪个 SlotID 将与 Order 一起使用)
- 如何在运行时根据用户的情况向用户显示我们将在哪个时间使用通用模型并相应地稍后更新价格
- 如果用户预订了第一个时间段,然后另一个用户预订了跟进,则会出现间隙以及如何在数据库中的 SQL Server 中处理时间
问题:
- 实现满足所有可能场景的解决方案的最佳数据库模式是什么?
- 处理来自 SQL Server/ASP.NET POV 的时间实体的最佳方法是什么?