0

我需要一些建议或安慰...

我们正在开发一个基于 Web 的酒店分析应用程序 (ASP.NET)。该页面有不同的部分,显示前一晚和过去历史的特定酒店位置(总销售额、客房营业额等)的不同图表

该数据可以在夜间作业(存储过程)中运行以填充表,因为数据不必是最新的。昨天的数据是不需要实时的。页面中的每个分析部分是否应该让数据来自数据库中由该存储过程填充的特定表(存储过程最初会从它需要的多个表中获取信息)?还是每个分析部分都有自己的表格用于隔离目的更好?例如,关于总销售额的所有数据都应该在一个表中,而营业额信息应该在另一个表中。

由于数据有所不同,我正在辩论并走向每个人都有自己的表格。将所有数据放在一个表中意味着会有很多带有空值的单元格。但是话又说回来,随着新的分析需求的出现,这意味着添加更多的表......

有任何想法吗?

4

2 回答 2

0

您需要将分析与界面分开。这里的关键是“实体”。同一实体上的度量值应位于同一个表中。因此,您应该将有关酒店位置的所有信息放入同一张表中。

您将拥有一组相互关联的列。例如,与酒店入住率相关的所有列可能是一个组,而另一组可能是销售。我建议为这些列添加前缀以识别它们的主题。类似于“occ_”的占用和“sales_”的销售。

我建议对这些进行结构化,以便每个主题都在其自己的存储过程中。如果可能的话,我会使用知名视图来创建要添加到大表中的信息。

您可能拥有其他级别的其他信息,例如地理信息。此信息将位于不同的表中。

如果您想要钻取功能,这可能会变得更加复杂。但是,你没有问这个。

一件重要的事情要记住。当您开始设计应用程序时,您可能在不同的列之间有非常清晰的界限。但是,用户将开始模糊线条并将不同的元素组合在一起。毕竟,这就是分析和数据可视化的力量。

于 2012-06-27T21:52:04.623 回答
0

这称为数据结构的标准化。

您不想要一个包含所有内容的大表(包括一堆空值)

您确实希望每个主要逻辑概念都有一个表,然后再用一些表将它们在逻辑上链接在一起。

如果您想要关于如何拆分事物的更具体的想法 - 然后使用您认为要存储的一些列编辑您的问题 - 作为起点。

于 2012-06-27T21:43:09.387 回答