Googleカレンダーで予定を登録したりするけど、そういうようなものをDBで扱いたい。
いくつかの方法があった
よく分からない方法(詳細は省略)
ググったらSOのこんなページが出てきたんだけど、ちょっと無駄に複雑な気がした。
毎週x曜日系の繰り返しイベントも、毎週分レコードを作成する方法
以下のように2つテーブル用意するというアプローチもいくつか見つかった。これとかこれとか。
- イベント管理テーブル
- イベント実施予定テーブル:イベント1回につき1レコードを格納するテーブル
例えば、1度きりのイベントであれば2つのテーブルに1レコードずつ書き込む。
また、2013/11/1以降の毎月1日に実施する繰り返しイベントの場合、管理テーブルには1レコード書き込み、2番めのテーブルには開催日毎(2013/11/1, 2013/12/1, 2014/1/1・・・・)に1レコードを書き込む。
これはシンプルな方法で、いい方法が見つからなければこれにしようかと思った。
ただ、イベントの数が最終的には100万レコードを超える予定だったので、これだとイベント実施予定テーブルが1億行を超える可能性があったので、ちょっと躊躇してた。