【发布时间】: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,再去应用。好的设计一开始就考虑了所有因素,后来添加东西而不考虑它们可能会导致问题并需要重新设计
-
编辑你的问题,描述数据之间的所有功能和依赖关系,讲述系统如何工作的故事,让我们从那里开始。