同様のトピックについていくつか質問がありましたが、この特定の問題の解決策を見つけることができず、ご意見をいただければ幸いです。
私は、ユーザーが特定のサービスをオンラインで予約できる予約エンジンに取り組んでいます。特定の日(または週)内に利用可能なタイムスロットを見つけて表示することに固執しています。必要な時間枠の長さ(例:1時間)と時間帯を予約できる営業時間(例:09:00h〜18:00h)を知っています。さらに、既存の予定を格納するMySQLテーブルがあります。私の質問に関連する列は次のようになります。
id start (datetime) end (datetime)
1 '2012-11-16 13:00:00' '2012-11-16 14:30:00'
2 '2012-11-16 15:00:00' '2012-11-16 16:00:00'
3 '2012-11-17 12:00:00' '2012-11-16 15:45:00'
4 '2012-11-17 13:00:00' '2012-11-16 16:15:00'
...
上記の情報を考えると、利用可能なタイムスロットのリストを取得するための(MySQLまたはPHPでの)適切なソリューションを見つけることができません。もう1つの条件があります。タイムスロットは、四半期ごとのステップでのみ開始できます。つまり。上記の16番目の利用可能な1時間のタイムスロットのデータの例は
、09:00、09:15、09:30、09:45、10:00、...、12:00、16:00、16:です。 15、...、17:00。
(サンプルデータのように)重複する時間がある場合でも、使用可能なタイムスロットは重複できないことに注意してください。
これに取り組むための最良の方法は何だと思いますか?