2

我正在研究酒店数据库,由于人们一直在预订和取消预订,因此预订表发生了很大变化。试图找出将预订表转换为 SSAS 中的事实表的最佳方法。我希望能够从中获得正确的统计数据。

例如:如果客户 X 在 9 月 20 日预订了 12 月 20 日的房间,并在 10 月 20 日取消了订单。如果我在 9 月份运行多维数据集(在 11 月份运行)并且我想查看 9 月份有多少房间被预订,那么 X 的订单应该计入总和。
但是,如果我为 YTD 计算运行多维数据集(在 11 月运行),则订单不应计入总和。

我正在考虑每晚将更新插入到同一个事实表中,除了预订号(唯一键)之外,还要在表中添加修订列。回到例子,假设客户 X 的预订号是 1234,我第一次进入表格时会得到修订 0,10 月当我添加取消记录时,它将得到修订 1(当然时间戳打开行)。

现在,如果我想查看任何时间,我可以通过时间戳来查看 MAX(修订)。

是否有意义?有任何想法吗?

注意:我举了取消订单的例子,但我们想跟踪另一个统计数据。


我读到的另一个选项是对多维数据集进行分区,但我是否对整个表进行分区。我希望能够每晚添加更改。我需要每晚对整个表进行分区吗?这是一张巨大的桌子。

4

1 回答 1

0

处理此问题的一种方法是在事实表中插入预订和取消记录。您无需查看 max(revision) - 多维数据集都是关于聚合的。

如果您的表格如下所示:

booking number, date, rooms booked

您可以像这样输入数据:

00001, 9/10, 1
00002, 9/12, 1
00001, 10/5, -1

然后,您的 YTD 将始终拥有准确的信息,无论您正在查看哪个月份。简单总结一下预订的房间。

于 2013-10-11T13:53:25.600 回答