当每个报告输出都是唯一的(如调查)时,我将如何构建数据仓库?
How would I build a data warehouse when each report output is unique (like a survey)?
我使用 SQL Server 2008 R2 来存储来自 Web 应用程序的调查问题和答案。
出于报告性能的原因,我正在考虑在我的事务数据库之外创建一个数据仓库。
我需要的报告很简单:
- 每一列header代表一个调查问题
- 每一行代表问题的答案
两个不同调查的示例:
由于每项调查都是独一无二的——作者可以提出他们想要的任何问题并得到不同的答案——将这些结果存储在典型的仓库模型中是否有意义?如果是这样,您建议如何设计?
注意:每项调查都与自己的 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 设计将回答以下问题。
- 调查结果如何?
我使用 SQL Server 2008 R2 来存储来自 Web 应用程序的调查问题和答案。
出于报告性能的原因,我正在考虑在我的事务数据库之外创建一个数据仓库。
我需要的报告很简单:
- 每一列header代表一个调查问题
- 每一行代表问题的答案
两个不同调查的示例:
由于每项调查都是独一无二的——作者可以提出他们想要的任何问题并得到不同的答案——将这些结果存储在典型的仓库模型中是否有意义?如果是这样,您建议如何设计?
注意:每项调查都与自己的 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 设计将回答以下问题。
- 调查结果如何?