フロント エンドとして FullCalendar を使用してカレンダー システムを構築しています。バックエンドは MySQL/PHP になります。
アプリケーションによって生成および挿入された、ユーザーの公開予定のリストを格納します。これらの予定は、同じ日に開始および終了する単一のイベントになります。さらに、ユーザーは、個人的な約束のためにカレンダーで利用できないことをマークすることができます. この後者の機能では、定期的なイベントを使用する必要があります。iCal に基づく構造を使用して、私が検討してきたホイールを再発明するのではなく。この投稿は、データベース構造を決定する上で、ical-field-list-for-database-schema-based-on-ical-standardに非常に役立ちました。
プライベートな単一/定期的な予定を保存するために、ユーザーが必要なデータを入力できるアプリケーション フォームを作成しました。フォームが送信されると、データは Ajax 経由でサーバーに送信されます。ユーザーがネイティブ形式または RRULE を使用して入力したパラメーターに基づいて、定期的な日付の配列を生成する優れた PHP スクリプトを見つけました。
これらの定期的な日付を保存/取得する最良の方法は何ですか。アプリケーションは、公開日と非公開日を含むユーザーのカレンダー ビューを表示できる必要があります。アプリケーションは、たとえば、特定の時間/日付の期間に空いている可能性のあるすべてのユーザーを返すことができる必要もあります。
すべてのイベントを iCal 形式で保存し、必要に応じてイベントを取得できれば十分ですか? 私が予見する問題は、その場でパラメーターを展開する必要があるため、繰り返しイベントを簡単に検索できないことですか? 私は、それを作成した元の RRULE への参照を使用して、すべての個々のイベント (生成されたもの) の 2 番目のテーブルを作成することを検討していました。今後 100 年間、ユーザーが毎日イベントに参加することを防ぐために、ユーザーが入力できる定期的な日付の数を制限することを検討します! このアプローチは、もともと定期的なルールによって作成された個々のイベントを編集するのにも役立つと思います。
これは良いアプローチですか、それとももっと良い方法がありますか?