Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 设置时间表的正确方法是什么?_Ruby_Ruby On Rails 3 - Fatal编程技术网

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,很抱歉我的英语不好