>백엔드 개발 >PHP 튜토리얼 >有谁做过预约挂号医生排班的程序,给个思路。

有谁做过预约挂号医生排班的程序,给个思路。

WBOY
WBOY원래의
2016-06-23 13:52:492347검색

个一个在线预约挂号,在医生排排班的时候,可以自定义每个时间段可以预约的人数,当然时间段也可以自定义,我这里时间段是一个小时的,比如8:00-9:00.......17:00-18:00,一天8个小时分为8个时间段。排班时间是星期一到星期日。哪位给个具体思路,谢谢了。


回复讨论(解决方案)

首先用一???????段及每???段最多可以??的人?,或者用??表也可以。
例如每???段只能??20?人。
$t = array(
     array('08:00', '09:00', 20),
      ....
     .....
     array('17:00', '18:00', 20),
);

然後,用一?表????人?,大概字段如下
id        自增
mid    用?id 或什?唯一身份??的?西,或email也可以,用??查是否重???用。
date   日期
t          ??段??,用????也可
num  ??人?

?有用?要??,先判?是否在允?????段?,如果是,再判?,???段?是否已????,如未??增加一???。

例如有一?用?在8:00-9:00 ????段??,可以??判?。
select num from table where date='2014-06-10' and t=0;

如返回的num小於 20,?insert。

如果要加上取消??功能,可以也?一?取消??限期,起?在9:00前10分?不能取消,???好。大概思路是??。



如果星期一和星期日等的可以????不同,那$t?????再分多一?做星期的key。如果是??建?做成??表,方便管理。

$t = array(
   'MON' => array(
     array('08:00', '09:00', 20),
      ....
     .....
     array('17:00', '18:00', 20),
  ),
  'TUE' => array(

  )
);

先设计数据库,表doctors(医生),表order(预约),表work(排班)
每次生成预约号,先去检索排班表,排班表里面如果当天的没有创建,先创建。
排班额外建表,就可以手动修改设置。

楼上的那种虽然有道理,但是你不能保证那个医生那一天那个点就一定会上班,可能遇到某些情况不上班或者有事耽误
所以不能写死在程序中。

把时间段的时间,存入数据库或者数组,当成一个类别处理,预定的时候,选取类别即可。

学习一下~

首先用一???????段及每???段最多可以??的人?,或者用??表也可以。
例如每???段只能??20?人。
$t = array(
     array('08:00', '09:00', 20),
      ....
     .....
     array('17:00', '18:00', 20),
);

然後,用一?表????人?,大概字段如下
id        自增
mid    用?id 或什?唯一身份??的?西,或email也可以,用??查是否重???用。
date   日期
t          ??段??,用????也可
num  ??人?

?有用?要??,先判?是否在允?????段?,如果是,再判?,???段?是否已????,如未??增加一???。

例如有一?用?在8:00-9:00 ????段??,可以??判?。
select num from table where date='2014-06-10' and t=0;

如返回的num小於 20,?insert。

如果要加上取消??功能,可以也?一?取消??限期,起?在9:00前10分?不能取消,???好。大概思路是??。

有点晕乎乎的,不太懂你的意思

LZ用3楼的方案吧。其实你的需求,无非是要搞清楚,有哪些医生,排班的情况,预约的情况。用数据库操作灵活些。

既然复杂就用数据表来做,方便管理

数据表结构如下:

doctor 表,记录医生信息
doctor_id 医生id   PK
name      医生名称

timeline 表,记录每个医生每天每个时段的能预约的信息,这个需要每隔一段时间做一次新增和删除,新增加新日期预约时间,删除过期的.星期没有用了,因为直接用日期来定比较好。
tid        timeline id         PK
doctor_id  医生id              FK
date       日期
quota      允许预约的人数
starttime  时段开始语          例8:00
endtime    时段结束            例9:00
status     该时段是否允许预约  0 否 1允许

order 预约表,记录用户预约的情况
order_id   预约id PK
userid     用户id -> 会员系统这个你自己想 FK
tid        预约了的时段id                 FK
addtime    预约时间

流程:
首先先输入doctor 和 timeline 数据,如下

共有两个医生
doctor_id name
1         d1
2         d2

在2014-06-11这天的班表,doctor1别8个时间段全满,doctor2 则只有6个时间段需要工作
tid doctor_id  date        quota starttime endtime status
1       1       2014-06-11   10     08:00    09:00     1
2       1       2014-06-11   10     09:00    10:00     1
3       1       2014-06-11   10     10:00    11:00     1
4       1       2014-06-11   12     11:00    12:00     1
5       1       2014-06-11   12     14:00    15:00     1
6       1       2014-06-11   8        15:00    16:00     1
7       1       2014-06-11   10     16:00    17:00     1
8       1       2014-06-11   5        17:00    18:00     1
9       2       2014-06-11   10      08:00    09:00     1
10     2       2014-06-11   10      09:00    10:00     1
11     2       2014-06-11   10     10:00    11:00     1
12     2       2014-06-11   12     14:00    15:00     1
13     2       2014-06-11   10     16:00    17:00     1
14     2       2014-06-11   5       17:00    18:00     1


预约
第一位用户useid=1 要预约 2014-06-11 11:00~12:00 doctor1
首先判断timeline 中 doctor_id=1 date=2014-06-11 starttime=11:00 endtie=12:00 quota>0的记录是否存在
如果不存在,返回提示没有预约的时段或名额已满
如果存在
1。在order表新增一条记录
order_id userid tid       addtime
  1                 1      4   2014-06-09 10:29:29
2.将timeline tid=4 的 quota-1,那记录就会变成

4      1       2014-06-11   11     11:00    12:00     1

流程就是这样,应该很明白了吧。

读不起了各位,最近一段时间出差去了,昨天才回来,看了下8楼的方法,这样的话每次都要新增一次,而且都是手动输入数据,如果按星期的话,那没个一个星期就要更新一次。好像时间是写死了

读不起了各位,最近一段时间出差去了,昨天才回来,看了下8楼的方法,这样的话每次都要新增一次,而且都是手动输入数据,如果按星期的话,那没个一个星期就要更新一次。好像时间是写死了



??不是?死的。你什??候需要工作,才添加入班表。

可以?置?期班表及??班表。

例如?生A,每?星期一~五都是8:00~12:00工作。可以?多一?表???期班表,然後另一?表????班表。

例如今天,星期一,正常是8:00~12:00?生A上班的,但??有事,需要改成下午14:00~18:00。??就把14:00~18:00?入今天??班表。但判?今日有??班表的,?按??班表去??。否?按?期班表??即可。大概思路是??了。

读不起了各位,最近一段时间出差去了,昨天才回来,看了下8楼的方法,这样的话每次都要新增一次,而且都是手动输入数据,如果按星期的话,那没个一个星期就要更新一次。好像时间是写死了



你究竟想要做什么?把思路先理清楚了!
你不是“预约”吗?怎么可能每周是一样的?
如果我约在明天,难道明天的明天也有效吗?日期当然是定死的!

我只需要7天时间进行循环,当天预约明天的,比如:2014-6-25(星期三)?2014-7-1(星期二),不管怎么排班我都是以7天时间为准,这个具体要怎么体现呢,照你那方法我都不知道在页面和程序上怎么去体现了。


读不起了各位,最近一段时间出差去了,昨天才回来,看了下8楼的方法,这样的话每次都要新增一次,而且都是手动输入数据,如果按星期的话,那没个一个星期就要更新一次。好像时间是写死了



??不是?死的。你什??候需要工作,才添加入班表。

可以?置?期班表及??班表。

例如?生A,每?星期一~五都是8:00~12:00工作。可以?多一?表???期班表,然後另一?表????班表。

例如今天,星期一,正常是8:00~12:00?生A上班的,但??有事,需要改成下午14:00~18:00。??就把14:00~18:00?入今天??班表。但判?今日有??班表的,?按??班表去??。否?按?期班表??即可。大概思路是??了。

可以这样,你先做一天排一次的,做出来以后再改成7天循环的。

可以这样,你先做一天排一次的,做出来以后再改成7天循环的。

你那个方法我可以理解成这样的吗?我做成这样的如图: ,这个是7天自动循环的,每天的时间段和人数自定义,但是这个SQL语句该怎么写呢?麻烦你了,最早那个思路客户不满意,菲的弄成这个得

字段为:
日期、专家、时段1、时段2......时段10
即每个专家每天一条记录

字段为:
日期、专家、时段1、时段2......时段10
即每个专家每天一条记录

那照这样的话,那不是每天都要进行一次排班

为什么呢?
只不过是将你的表单(#14 的截图)中的每一天作为一条记录保存而已
如果你的表单是对一周的设定,那么提交后就按天保存成 7 条记录就是了

为什么呢?
只不过是将你的表单(#14 的截图)中的每一天作为一条记录保存而已
如果你的表单是对一周的设定,那么提交后就按天保存成 7 条记录就是了

那这样的话,保存的时候是同多循环插入数据(还是数组),我要保存的是时间段还有每个时间段对应的人数

首先想?下?主的是,?些????段以及???段允???的人?或者其它信息是由每??家自己?置的?是系??置的

如果是?家自己?置的那你??可以??
首先你??有一???段的配置信息表,????段如8.00,   9.00或者?以半?小?如8.30,  9.00, 9.30等,每???是一???

然後?家在?置?,把?些??全部列出?,由?生自己去定???段,如8:00-9:00,允?的??人?等信息,?置好後再?入??

患者看信息?,把最近七天的?家?置的??段以及相?信息?用出?即可.

首先想?下?主的是,?些????段以及???段允???的人?或者其它信息是由每??家自己?置的?是系??置的

如果是?家自己?置的那你??可以??
首先你??有一???段的配置信息表,????段如8.00,   9.00或者?以半?小?如8.30,  9.00, 9.30等,每???是一???

然後?家在?置?,把?些??全部列出?,由?生自己去定???段,如8:00-9:00,允?的??人?等信息,?置好後再?入??

患者看信息?,把最近七天的?家?置的??段以及相?信息?用出?即可.

我这个是系统设置的,保不齐以后有医生自己进行排班。

如果你的输入框命名成这样的形式:
时段1
时段2
提交后不就都对应上了吗?

如果你是用 mysqli 或 pdo 扩展的话,绑定一下参数,就可循环插入,没有什么开销
如果是用 mysql 就组装一下指令串,也不是什么难事

为了系统的兼容性,最好是每天每个时段单独设置存到数据库里。

如果你的输入框命名成这样的形式:
时段1
时段2
提交后不就都对应上了吗?

如果你是用 mysqli 或 pdo 扩展的话,绑定一下参数,就可循环插入,没有什么开销
如果是用 mysql 就组装一下指令串,也不是什么难事

你这种方法我都迷糊了,也不知道是我钻牛角尖了,还是不懂这个,再次截图

如果哪位真好心,直接给我写成代码吧,拜托了,问题解决,我再追加50分

其?,思路你懂了??

如果不懂,就算?你代?,也?有用。

没人愿意吗?

其?,思路你懂了??

如果不懂,就算?你代?,也?有用。



其?,思路你懂了??

如果不懂,就算?你代?,也?有用。


各位给帮忙看下这个事怎么回事,http://jcy.xys.gov.cn/已经放到服务器了,怎么还是本地路径呢,这个解决了我结贴给分,拖得时间太长了,对不起大家了。。

?片你在模板中?死吧。http://localhost/xyjcy_network/templates/default/images/xjweibo.jpg


读不起了各位,最近一段时间出差去了,昨天才回来,看了下8楼的方法,这样的话每次都要新增一次,而且都是手动输入数据,如果按星期的话,那没个一个星期就要更新一次。好像时间是写死了



你究竟想要做什么?把思路先理清楚了!
你不是“预约”吗?怎么可能每周是一样的?
如果我约在明天,难道明天的明天也有效吗?日期当然是定死的!
版主,请教下
网站上的doc文件打开时也不提示是否下载或者打开,直接打开就是乱码,不知道这是怎么回事呢?

你没有发送下载的头?

你没有发送下载的头?


文件直接是编辑器上传的,在虚拟空间都好好的,放到客户服务器上就不行了,打开内容就是乱码。
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.