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

时间:2015-07-15 19:12:10

标签: sql-server data-warehouse

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

出于报告性能原因,我正在研究在事务数据库之外创建数据仓库。

我需要的报告相当简单:

  • 每个列标题代表调查问题
  • 每行代表问题的答案

两种不同调查的例子:

enter image description here

enter image description here

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

因为这是一个数据仓库,我会回答这个事实。由于您只是插入和选择,因此无需标准化。

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

主键是(答案,问题,调查ID)。 (问题,调查ID)还有另一个独特的索引。

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

此表将回答以下问题。

  • 给出某些答案的频率是多少?
  • 问某些问题的频率是多少?
  • 对某些问题给出某些答案的频率是多少?

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

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

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

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

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

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

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

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

  • 调查结果如何?