当每个报告输出都是唯一的(如调查)时,我将如何构建数据仓库?

How would I build a data warehouse when each report output is unique (like a survey)?

我使用 SQL Server 2008 R2 来存储来自 Web 应用程序的调查问题和答案。

出于报告性能的原因,我正在考虑在我的事务数据库之外创建一个数据仓库。

我需要的报告很简单:

两个不同调查的示例:

由于每项调查都是独一无二的——作者可以提出他们想要的任何问题并得到不同的答案——将这些结果存储在典型的仓库模型中是否有意义?如果是这样,您建议如何设计?

注意:每项调查都与自己的 ID 相关联。

谢谢!

因为这是一个数据仓库,所以我会回答事实。无需规范化,因为您只是插入和选择。

Answer
------
Answer Text
Question Text
Survey ID

主键是(答案、问题、调查 ID)。在(问题,调查 ID)上还有另一个唯一索引。

如果调查的日期和时间可用,我会在答案中添加调查时间戳 table。

此 table 将回答以下问题。

  • 某些答案多久给出一次?
  • 某些问题多久被问一次?
  • 特定问题多久给出特定答案?

如果您正在寻找规范化的事务数据库,那么以下 table 会更合适。

Survey
------
Survey ID
...

如果没有其他调查信息,则不需要table。

Question
--------
Question ID
Survey ID
Question Text
...

问题 ID 是一个自动递增的整数。调查 ID 是返回调查的外键 table。

Answer
------
Answer ID
Question ID
Answer Text
...

答案 ID 是一个自动递增的整数。问题 ID 是返回问题 table 的外键。

此 table 设计将回答以下问题。

  • 调查结果如何?