私はホテルの DB に取り組んでいますが、人々は常に予約とキャンセルを繰り返しているため、予約テーブルは大きく変化します。予約テーブルを SSAS のファクト テーブルに変換する最良の方法を見つけようとしています。そこから適切な統計を取得できるようにしたいと考えています。
例:クライアント X が 9 月 20 日に 12 月 20 日の部屋を予約し、10 月 20 日に注文をキャンセルした場合。キューブを 9 月 (11 月に実行) に実行し、9 月に予約された部屋数を確認したい場合、注文 X は合計にカウントされます。
ただし、YTD 計算 (11 月に実行) のためにキューブを実行すると、注文は合計にカウントされません。
毎晩同じファクト テーブルに更新を挿入し、予約番号 (一意のキー) に加えてリビジョン列をテーブルに追加することを考えていました。例に戻ると、クライアント X の予約番号が 1234 であるとします。最初にテーブルに入力するとリビジョン 0 が取得され、10 月にキャンセル レコードを追加するとリビジョン 1 が取得されます (もちろん、タイムスタンプはオンになっています)。行)。
ここで、時間の経過を確認したい場合は、タイムスタンプで取得して、MAX(リビジョン) を確認できます。
それは理にかなっていますか?何か案は?
注: 注文をキャンセルする例を挙げましたが、別の統計を追跡したいと考えています。
私が読んだ別のオプションは、キューブを分割することですが、テーブル全体を分割しますか? 毎晩変更を追加できるようにしたいです。テーブル全体を毎晩分割する必要がありますか? それは巨大なテーブルです。