有谁做过预约挂号医生排班的程序,给个思路。
回复讨论(解决方案)
首先用一???????段及每???段最多可以??的人?,或者用??表也可以。
例如每???段只能??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文件打开时也不提示是否下载或者打开,直接打开就是乱码,不知道这是怎么回事呢?
你没有发送下载的头?
你没有发送下载的头?
文件直接是编辑器上传的,在虚拟空间都好好的,放到客户服务器上就不行了,打开内容就是乱码。
下一篇: Python中实现三目运算的方法