约会的数据模型-选择多个日期

本文关键字:日期 选择 数据模型 约会 | 更新日期: 2023-09-27 17:50:30

我正在研究一个问题,看起来像这样:

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

想象另一个客户想在下午4点去看医生,但因为医生已经吃药了,他不得不在下午5点去。

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


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

  • 一个服务页面打开,客户#1选择"体检"+"验血"。
  • 另一个页面打开当天的可用时间(考虑到两个服务的持续时间)。
  • 客户端#1选择4pm.

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

  • 服务页面打开,客户端#2选择'medical lookup'。
  • 显示空闲时间的页面打开。客户#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。

约会的数据模型-选择多个日期

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

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