我在用户界面下方获得了用于计划功能的信息。

我需要为该月的每个星期设置几天的医生可用时间。

我应该如何创建用于处理此表。

我以为我可以用下面的列创建一个table structure

  • DoctorId
  • 日期
  • Avalable来自
  • AvalilableTo

  • 但是这里的问题是,如果同一位医生在同一天访问两个不同的时间,我将为他添加两行。

    我的数据库架构中是否存在任何问题,或者任何更好的表设计都可以帮助我做到这一点呢?

    使用此表,我应该能够检测到特定日期和时间有空或没有空缺的医生

    我如何才能最好地改善我的餐 table 设计?

    编辑:我正在使用的屏幕是为了帮助Hospital Staff to know when the visiting doctor is available,因此他们可以为患者预约时间或告知其他可用时间

    最佳答案

    编辑:我误解了这个问题。

    您的设计很好-表格中有多行反射(reflect)了多个偶数没有错。您可能会考虑的唯一改进是将AvailableFrom和AvailableTo设为日期时间值,而不是时间,因此您可以删除“日期”列。这可以帮助您处理整个午夜的可用性。

    答案的其余部分与该问题无关-它是基于对该问题的误解。

    首先,您需要知道医生的工作时间是什么时候;这可能很简单(每天9-5),也可能很复杂(星期一9-5,星期二不可用,星期三-星期五9-12:30)。您可能还需要记录休息时间-例如每天的午餐,因此您不必在午餐时间安排约会;我假设不同的医生会在不同的时间休息。

    接下来,您可能不想记录“可用性”,而是要记录每天的“约会”。当他们的日程安排表明他们正在工作时,以及没有预定的约会时,都会有医生在场。

    因此,您的架构可能是:

    Doctors
    --------
    DoctorID
    ....
    
    DoctorSchedule
    ------------
    DoctorID
    DayOfWeek
    StartTime
    BreakStartTime
    BreakEndTime
    EndTime
    
    DoctorAppointment
    ----------------
    DoctorID
    Date
    AppointmentStartTime
    AppointmentEndTime
    

    关于sql-server - 医生调度数据库设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16669197/

    10-09 02:01