设置计划表的正确方法是什么?

时间:2013-01-20 03:57:10

标签: ruby ruby-on-rails-3

我正在尝试使用以下表格构建约会应用程序:DoctorsSchedules。我很难弄清楚设计Schedules表最方便的方法。每个doctor都有自己的schedule,所以我想我为day doctor的工作和start和{{1}创建了一个字段我可以在该范围内进行数学运算。

如果医生正在休假或参加会议,我不打算在申请中考虑。但我确实需要在午餐时间内设定一个时间。

如果他每周只工作三天,我应该如何处理他离开的日子?

end

2 个答案:

答案 0 :(得分:1)

我会在两个表中为每个医生提供ID,并且具有日期的数值。

结构应如下所示;

Doctors Table
---------------------------------------------
Doctor_ID | Doctor_name | Practice | etc
---------------------------------------------

Schedules
-----------------------------------------------------------
Day_ID    | Time (hour,minute,second) | Doctor_ID | Istaken
-----------------------------------------------------------

Istaken将是一个bool变量,它将告诉您是否采取了一天中的小时。您需要做的是,如果您不想每次都添加新变量,则需要每天为每位医生创建24个表格。

或者你可以做的是;

将24小时添加为列,例如hourone | hourtwo等并将它们列为0或1.这样,您每次都可以保存以添加新记录。

如果以这种方式创建它,系统将更容易搜索表格,因为您将在Doctor_ID上加入整数值

答案 1 :(得分:1)

首先,您需要确定计划中的最小部分。常识是“小时”,或者您可以根据自己的喜好使用“日”或“半天”。一旦定义,就很难改变。

计划表将包含以下主要元素:

id#唯一ID

start_time#这非常重要。它显示每个工作小时的开始时间,用于从日历查询。最好使用十六进制数据时间戳。

doctor_id#占据这一小时的医生。如果没有被占用,那就是空白。请注意,您可能有两名医生占用同一小时。因此,start_timedoctor_id不是唯一的,但结合在一起它们是唯一的。

patient_id#这个小时订购的病人。

description #Description of this

现在出现了用例:

在您的日历中,对于某一天,您会显示8小时。您查询数据库以查找是否有任何计划在每小时的开始时间(如果存在),您标记此小时并链接到计划。

注意可能存在患者连续几个小时要求医生的情况。例如3小时,在这种情况下,您需要添加三个记录到计划表,仅与idstart_time不同。

也可能有两名医生在同一时间安排。它很容易显示为上述方案。

arragement应该有用。希望能帮助到你。