カレンダー アプリケーションで定期的なイベントをモデル化する最良の方法は何ですか? [閉まっている]

概要

定期的なイベントをサポートする必要があるグループ カレンダー アプリケーションを構築していますが、これらのイベントを処理するために私が考え出したソリューションはすべてハックのように思えます。どこまで先を見られるかを制限し、すべてのイベントを一度に生成できます。または、イベントを繰り返しとして保存し、カレンダーで先を見ているときに動的に表示することもできますが、誰かがイベントの特定のインスタンスの詳細を変更したい場合は、イベントを通常のイベントに変換する必要があります。

もっと良い方法があると思いますが、まだ見つかりません。特定のイベント インスタンスの詳細を変更または削除できる、定期的なイベントをモデル化する最良の方法は何ですか?

(私は Ruby を使用していますが、それがあなたの答えを束縛しないでください。ただし、Ruby 固有のライブラリなどがあれば、それは知っておくと良いでしょう。)

解決策

今後のすべての定期的なイベントには「リンク」の概念を使用します。これらはカレンダーに動的に表示され、単一の参照オブジェクトにリンクされます。イベントが発生するとリンクが切断され、イベントはスタンドアロン インスタンスになります。定期的なイベントを編集しようとすると、将来のすべての項目を変更する (つまり、単一のリンクされた参照を変更する) か、そのインスタンスのみを変更する (この場合、これをスタンドアロン インスタンスに変換してから変更する) ように求めるプロンプトが表示されます。後者のケースでは、単一インスタンスに変換された将来のすべてのイベントを定期的なリストで追跡する必要があるため、少し問題があります。しかし、これは完全に実行可能です。

したがって、本質的には、単一インスタンスと定期的なイベントという 2 つのクラスのイベントがあります。