Ruby 设置时间表的正确方法是什么?
我正在尝试使用以下表格构建预约应用程序:Ruby 设置时间表的正确方法是什么?,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我正在尝试使用以下表格构建预约应用程序:医生,时间表。我很难弄清楚设计时间表表最方便的方法是什么。每个doctor都有自己的schedule,所以我想我应该为daydoctors工作创建一个字段,并创建一个start和end日期,以便我可以在该范围内进行数学运算 如果医生休假或参加国会,我不打算在申请中考虑。但我确实需要设定一个午餐时间在这个范围内 另外,如果他一周只工作三天,我该如何处理他休息的日子 create_table "schedules", :force => true d
医生
,时间表
。我很难弄清楚设计时间表
表最方便的方法是什么。每个doctor
都有自己的schedule
,所以我想我应该为day
doctors工作创建一个字段,并创建一个start
和end
日期,以便我可以在该范围内进行数学运算
如果医生休假或参加国会,我不打算在申请中考虑。但我确实需要设定一个午餐时间在这个范围内
另外,如果他一周只工作三天,我该如何处理他休息的日子
create_table "schedules", :force => true do |t|
t.string "day"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "doctor_id"
t.time "start_time"
t.time "end_time"
end
我会在两个表中都有每个医生的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。这样,您就可以避免每次添加新记录
如果以这种方式创建,系统将更容易在表格中搜索,因为您将连接医生ID上的整数值。首先,您需要确定明细表中的最小部分。常识是“小时”,或者你可以随意使用“天”或“半天”。一旦定义好,就很难改变 进度表将包含以下主要元素:
id
#唯一的id
开始时间
#这非常重要。它显示每个工作小时的开始时间,以便从日历中查询。最好使用十六进制数据时间戳
医生id
#占用这一小时的医生。如果没有被占用,则为空。注意:您可能有两名医生占用同一时间。因此,无论是start\u time
还是doctor\u id
都不是唯一的,但它们结合在一起是唯一的
patient_id
#本小时点菜的患者
description
#此
现在是用例:
在日历中,对于给定的一天,显示8个可用小时。查询数据库以查找是否有任何计划在每个小时的开始时间,如果存在,则标记该小时并链接到该计划
注意:可能有这样一种情况,即患者要求医生连续几个小时。例如3小时,在这种情况下,您需要将三条记录添加到schedule表中,仅在id
和start\u time
上存在差异
也可能有两名医生在同一时间排班的情况。它很容易显示为上述方案
安排应该有效。希望能有帮助 我同意日期,但约会时间只有一个字段?这是否意味着我必须为医生可以工作的每个预约创建一个记录?您可以为所有预约创建24小时,然后添加另一个布尔列以确定该小时是否已满。每天24表,每个医生24表,您的意思是记录,对吗?谢谢sawa,很抱歉我的英语不好