9

私のアプリケーションには、スケジュールを持つプロバイダーと、スケジュールから予定を予約するクライアントがあります。次の機能が必要です。

プロバイダー:-繰り返し発生する可用性を指定できます。たとえば、月9-5、火10-3など。-データをブラックアウトできるようにします。たとえば、この月には利用できません。-繰り返し発生しない単一の日付/時刻スロットを追加できます。例-この土曜日9-5。

顧客:-単一の予定を予約できる。-定期的な予定を予約できるようになります。(毎週月9-4)。

これまでのところ、私は3つのオプションを考え出しました。

  1. スケジュールを30分間隔に分割し、間隔/プロバイダーのペアごとにデータベースエントリを作成します。各インターバルは無料または予約可能です。顧客が予約をするとき、私たちは間隔を予約済みとしてマークします。このアプローチの問題は、多くのスペースを浪費することであり、繰り返し予約する場合の検索パフォーマンスがどれほど優れているかはわかりません。
  2. 各可用性期間を「イベント」として保存します。再発する場合は、イベントを複製します。空きスロットを検索するときは、予約テーブルを検索して、重複する予約がないことを確認してください。この場合、繰り返し発生するスロットの検索は少し厄介なようです。来年の月9-5に利用可能なすべてのプロバイダーを見つけるには、一致するすべての「イベント」を検索し、52の一致するイベントがあるすべてのプロバイダーを見つける必要があります。
  3. 各可用性期間を「イベント」として保存します。繰り返し発生する場合はフラグを追加します。空きスロットを検索するときは、予約テーブルを検索して、重複する予約がないことを確認します。繰り返し発生する予定の検索が簡単になります。再発すると思われるスロットを「ブラックアウト」するには、偽の予約を挿入するだけです。
4

1 に答える 1

7

1. イベント テーブルを作成します。

a) 基本的な列 eventdate、starttime、endtime、およびイベントのその他の詳細 - これらは忙しい時間であり、カレンダーでブロックするものです

b) 定期的なイベント - 列を追加します: - isrecurring - デフォルトは 0 - recurrencetype (毎日、毎週、毎月) - recurevery (繰り返しが発生する回数) - 月、火、水、木、金、土、日 -毎週の繰り返しの場合は曜日 - month と dayofmonth - 毎月の繰り返しの場合

2. カレンダーで定期的なイベントを作成するときに問題が発生します: - すべてを一度に作成する場合 (次の 6 か月間など)、1 つを編集するたびに、他のイベントを更新する必要があります - 次の場合にのみイベントを作成する場合前の日付が過ぎた場合、将来の日付のカレンダーを表示するには複雑なロジックが必要です

3.イベントが互いに重複することを許可するかどうか、どのリソースを使用するか、イベントをどれだけ先にスケジュールできるかを処理するためのルールも必要です

于 2012-03-01T18:24:17.510 に答える