0

画像でわかるように、数か月間スケジュールが固定されている (長期治療) 医師と患者のリストがあります。

固定スケジュールの患者リスト

そのため、スケジュールが削除されるまで、クラリスは毎週月曜日の 09:00 から 10:00 までフェンウィック博士との面談を行います。

その情報を次のようにテーブルに保存しています。

  • id (整数)
  • 日 (1,2,3,4,5) ここで、月曜日 = 1、火曜日 = 2...
  • fk_doctor
  • fk_患者
  • 始まる時間)
  • 終了時間)

A)そのテーブルから定期的なイベントのリストを生成するにはどうすればよいですか?

B)繰り返される繰り返しイベントのリスト全体をテーブルに保存することは、どのくらい良い (または最適) でしょうか?

B) で見られる唯一の利点は、各イベントにコメントを保存する可能性であり、フルカレンダーで簡単にロードできますが、多くのレコードがあり、速度またはロード時間は非常に影響を受けます。実際の状況の 0.00001%

提案できるアイデア/意見をありがとう

4

1 に答える 1

1

コメントが長すぎるので、コメントを回答として追加します。

OK、定期的なイベントを追加する際に、「定期的なイベントの追加」で次の入力を行う必要があります -

1) Occurence Type - Daily, Weekly, Month (as radiobuttons)
2) Recurring Days - Mon, Tue, Wed, Thu, Fri, Sat, Sun (as checkboxes)
3) Start Date and End Date
4) From Time and To Time

ここで、「毎日」オプションを選択すると、「定期的な日」と「終了日」が非表示/無効になります。

「毎週」を選択すると、3 つすべてが有効になります。ここでは、「繰り返しの日」チェックボックスから選択した日に従って、StartDate と EndDate の間のすべての日付を計算する必要があります。あなたが選択した

Occurence Type - Weekly
Recurring Days - Mon,  Wed
Start Date - 6-July-2014
End Date - 20-July-2014

js関数を次のように記述します

GetWeeklyDates(startdate, enddate)
{
// sorry no time write by urself, I had done this at asp.net end
}

GetWeeklyDates 関数は、次の日付を返す必要があります。

これで簡単になり、各日付に From Time と End Time を追加して、

これらの日付のイベントを追加するには、php の最後でループを実行します。

これらのアルゴリズムは、SQL の最後で実行することもできます

start datetime と end datetime をプロシージャに渡すだけです

私のSQLに関数を書いて、毎週の日付/毎月の日付を取得します

挿入予定ステートメントをループします

それがあなたを助けることを願っています。

于 2014-07-17T13:21:00.463 に答える