医師の診察の予約やスケジュールを立てた人はいますか?
医師がシフトをスケジュールするときに、各時間帯で予約できる人数をカスタマイズできます。もちろん、時間帯もカスタマイズできます。 8:00~9:00……17:00~18:00というように1時間で、1日8時間を8つの時間帯に分けます。シフト勤務時間は月曜日から日曜日までです。誰か具体的なアイデアを教えていただけますか?
------解決策----------------------
まず、配列を使用して期間とそれぞれの期間を記録します期間内に予約できる最大人数。またはデータ テーブルを使用できます。
たとえば、各時間帯で予約できるのは 20 人までです。
$t = array(
array('08:00', '09:00', 20),
....
.....
array('17 :00', '18:00', 20),
);
次に、テーブルを使用して予約数を記録します。およそのフィールドは次のとおりです。予約が繰り返されているかどうかを確認するためにも使用されます。
date Date
t 期間識別、配列識別も使用できます
num 予約数
ユーザーが予約をしたい場合、まず予約が許可されている範囲内であるかどうかを判断します予約が満杯である場合は、この期間内に予約が満杯であるかどうかを確認します。満杯でない場合は、レコードを追加します。
例えば、ユーザーが8:00〜9:00の時間帯に予約をした場合、このように判断できます。
select num from table where date='2014-06-10' and t=0;
返された num が 20 未満の場合は、挿入します。
キャンセル機能を追加したい場合は、キャンセル期限を設定することもできます。少なくとも9:00の10分前にはキャンセルできません。一般的な考え方はこれです。
-----解決策---------
月曜と日曜で予約可能な時間が異なる場合、$t配列をもう1層に分割して週のキーとして使用します。この場合、データテーブルを作成して管理しやすくすることをお勧めします。
$t = array(
'MON' => array(
array('08:00', '09:00', 20),
....
.....
array('17:00', '18:00', 20),
),
'TUE' => array(
)
);
-----解決策---------
複雑なのでデータを使うデータテーブルの構造は次のとおりです。
医師情報を記録する医師テーブル Doctor_id 医師 ID PKname 医師名
タイムラインテーブルは、各医師が毎日時間帯ごとに予約できる情報を記録します。これは定期的に追加および削除する必要があります。新しい日付や予約時間を追加したり、期限切れになったものを削除したりする必要はありません。週は日付で直接設定する方が良いため役に立ちません。
tid タイムライン ID PK
doctor_id 医師 ID FK
date 日付
quota 予約できる人数starttime 期間開始言語 例 8:00endtime 終了期間の例 9: 00
status この期間中に予約が許可されているかどうか 0 いいえ 1 許可
オーダー予約テーブル、ユーザーの予約ステータスを記録します
order_id 予約 ID PK
userid ユーザー ID -> ; 会員制、ご自身でご希望ください FK
tid 予約医師の期間 ID とタイムラインデータ、以下の通り
医師は 2 名です doctor_id name
1 d1
2 d2
2014 年 6 月 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 20 14-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 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