【问题标题】:Data Model for Appointments - choose multiple dates约会数据模型 - 选择多个日期
【发布时间】:2015-05-22 19:39:29
【问题描述】:

我正在处理一个看起来像这样的问题:

想象一个医生办公室,客户可以在下午 4 点预约。

想象一下另一位客户想在下午 4 点去看医生,但因为已经被带走了,所以他必须在下午 5 点去。

现在想象一下,第二个客户有可能额外选择下午 4 点作为访问的潜在日期时间,这样当第一个客户决定不来时,第二个客户会收到通知说:嘿,你可以早点进来。


客户 #1 打开应用程序,选择约会日期,例如2015 年 5 月 23 日。

  • 打开一个包含服务的页面,客户端 #1 选择“体检”+“验血”。
  • 打开另一个页面,显示当天的可用时间(考虑到两种服务的持续时间)。
  • 客户 #1 选择下午 4 点。

客户端 #2 打开应用程序,选择相同的日期。

  • 打开一个包含服务的页面,客户端 #2 选择“医疗查找”。
  • 将打开包含可用时间的页面。客户 #2 选择下午 4 点和下午 5 点。

接下来,

  • 客户 #1 打开应用,取消下午 4 点的预约。
  • 客户 #2 收到通知说下午 4 点有预约。

我正在尝试为此创建一个简单的数据模型,但是一个约会的多个 DateTimes 让我很生气。

这就是我现在拥有的:

表格:

Client
int id
string name

Service // Bloodtest, General medical checkup, etc.
int id
string title
int duration // estimated duration in minutes

Appointment
int id
int client_id
int doctor_id
List<Service> Services
List<DateTime> AppointmentDateTimes

Doctor
int id
string name
List<Service> Services

我的问题

List<DateTime> 

方法是,我不知道哪个客户优先于选定的 DateTime(谁是第一个)以及客户更喜欢哪个 DateTime。

任何建议将不胜感激,谢谢。

【问题讨论】:

  • 您确定要为 java 和 c# 标记这个吗?你可以让每个日期都有一个队列。
  • 一次预约可以进行多项服务吗?
  • 是的,这就是存在服务列表的原因。稍后在为新约会选择可用时间时添加并考虑持续时间。
  • 在我看来,您需要更精细的实体粒度。先设计DB,再去应用。好的设计一开始就考虑了所有因素,后来添加东西而不考虑它们可能会导致问题并需要重新设计
  • 编辑你的问题,描述数据之间的所有功能和依赖关系,讲述系统如何工作的故事,让我们从那里开始。

标签: java c# database datetime


【解决方案1】:

将您的约会日期时间(目前只是 DateTime 值)设置为顶级对象。然后每个 AppointmentDateTime 对象都有一个有序的患者列表。第一位患者是预订的患者,第二位或更高位的患者在等待名单上。

此外,每个 AppointmentDateTime 对象都可以包含分配的医生、房间等信息。您将能够在同一时间段拥有多个 AppointmentDateTime 对象,每个对象用于不同的医生。

【讨论】:

  • 感谢您的回答。我认为数据库中没有像队列(MS SQL)这样的可用对象。您能否详细说明如何使用数据库实现队列?
  • 我之前评论的编辑时间超时...假设您有以下三个表和列: AppointmentDateTime (id, doctor_id, start_time, end_time, room_id), Client (id, name),约会(id、约会日期时间 ID、客户端 ID、服务 ID)。 Appointment 本质上是客户端和约会空档之间的映射表(通过 AppointmentDateTime 表表示)。将“订单”列添加到约会表。第一个注册的客户在该列中获得 0,下一个客户获得 1。这样您可以保持预约注册的顺序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-11
  • 1970-01-01
  • 2022-01-19
  • 2019-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多