繰り返し機能のような Google カレンダーに最適な方法でテーブル構造を設計するにはどうすればよいですか?
Google カレンダーを使用すると、ユーザーはイベントの繰り返しを無期限または一定期間スケジュールできます。これを行う場合、これらのタイプの将来のデータをデータベース テーブルで管理する最善の方法は何でしょうか?
例: events という名前のテーブルがあり、繰り返しのないタイプで、ある日時にスケジュールされているすべての通常のイベントを保存します。繰り返し発生するイベントに関しては、別のテーブルを作成してテンプレートとして保存しますか?
たとえば、非常に単純に考えてみましょう。
**Events**
id
title
description
datetime_from
datetime_to
status
**Event_Schedule**
id
title
description
time_from
time_to
repeats_on (Daily, Weekly, Monthly)
repeat_config ____serialized array or object
フィールドは完全ではありませんが、これはアイデアを提供するためのものであり、ここでできることは、cron ジョブまたはスケジューラーが次のイベントごとにイベントを作成できることです。カレンダーに表示する場合は、Event_Schedule
テーブルからデータを生成することで実行できます。ユーザーが将来のイベントのデータを編集すると、そのイベントのデータをEvents
テーブルに保存できます。それは正しい方法ですか、それともより良い方法で行うことができますか? テンプレートと同じテーブルに保存することも考えられますが、別のテーブルの方が良い方法だと思います。