RDBS でのタイム テーブル モデリングに関連するほとんどすべてのことについて説明されていることは知っていますが、タイム テーブルを DB に格納するための利用可能な手法について適切に書かれたドキュメントを見つけることができません。
私の場合:
- 利用可能な場所を保持するテーブルと、実際のクラスを含むテーブルがあります。
- 各場所には独自のスケジュールがあります
- 各クラスは、いくつかの例外を除いて、いつでもどこでもスケジュールできます。
- 1 つのクラスは 1 つの時間枠を取ることができます (例: クラス A が 12:00 に P1 の場所で 1 時間スケジュールされている場合、クラス A の次の発生は、12:00 の前または 13:00 の後にのみ、任意の場所で配置できます。時間枠に空きがあります。Aクラスを2ヶ所で一度にスケジュールすることは禁止されています)
- 1つの場所で、時間枠のある1つのクラスにすることができます
- モデルは、スケジュールされたクラスのバージョン管理/履歴をサポートする必要があります
では、このデータ モデルを SQL DB で表現するにはどうすればよいでしょうか。
すぐに使用できる正確なスキーマを探しているわけではありません。むしろ、このタスクを解決するために使用できる、利用可能なモデリング手法とその比較を誰かが書いてくれるとうれしいです。
例: ツリー構造/階層データの場合、「変更されたプレオーダー ツリー トラバーサル アルゴリズム」が十分に文書化されていますが、タイムスロットを処理するための同様のアルゴリズム/手法はありますか?