【问题标题】:System design for Appointment Booking System预约系统的系统设计
【发布时间】:2016-12-21 11:08:09
【问题描述】:

我正在开发一个患者预约系统,以下是我提出的架构。您能否验证并让我知道实体及其关系是否正确。我正在研究一个基本系统,当用户登录时,他或她可以为医生和患者预约。他应该能够在预订时看到医生列表和他们的可用时间段。

**Patient**
Id
FirstName
LastName
DateOfBirth
Gender
Phone
Email
Address
City

**Apppointment**


  Id
    AppointmentTypeId
    Date
    Time
    Notes
    PatientId
    PractionersId

约会类型 ID 名称

实践者

Id
FirstName
LastName
PractionerTypeId

实践者类型

Id
PractionerType

【问题讨论】:

    标签: sql database system-design


    【解决方案1】:

    如果您要使用星型模式,您可能希望将注释从 Appointment 表中移出,因为这看起来像您的“事实”表。如果你有大量的文本字符串,它可能会在未来给你带来性能问题,因为几乎任何可以想象的查询都必须通过该表。当然要看它有多大。 Some tips on star schemas here

    【讨论】:

    • 嗨,吉姆,如果我将笔记移出,那么它应该放在哪里。在这种情况下,您能否找到星型模式的示例。我确实浏览了你分享的链接,但在这个阶段对我来说没有多大意义。也许一个如何完成的例子会让我更好地理解
    • 好吧,就像您在另一张桌子上有约会类型一样,您可能希望拥有带有注释的约会详细信息表格。 datawarehouse4u.info/… 可能是星型模式的更好总结
    【解决方案2】:

    您缺少一个 PractitionerAvailableHours 表。

    PractitionerAvailableHours 表

    • 从业者 ID
    • 可用日期
    • 可用时间

    该信息与该从业者已经进行的约会相结合,应该为您提供每个人的可用议程。

    【讨论】:

    • 应该是 AvailableHours 还是 Available time。它应该是什么数据类型。
    • 这取决于您的需求。但是您可以使用时间(或日期时间的时间部分)并在该表中拥有与 PractitionerHas 的可用插槽一样多的行。您应该按照您认为合适的方式定义插槽,尽管 15 分钟或 30 分钟的插槽就足够了。那将是您的 UI 的一部分。在数据库中,每个可用的插槽都有一行,并且约会应该根据需要占用尽可能多的插槽。
    猜你喜欢
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2020-01-31
    • 2018-09-24
    相关资源
    最近更新 更多