我目前正在使用SQL Server 2014实施数据仓库,而我正在努力维度表的布局,以及更多的数据提取。我有一个Excel的文件格式如下:在仓库中存储调查问卷
+--------+---------+------------+------------+------------+---+-------------+
| Region | Country | Location | Question 1 | Question 2 | … | Question 97 |
+--------+---------+------------+------------+------------+---+-------------+
| Africa | Algeria | Location 1 | Yes | Yes | … | No |
| Africa | Algeria | Location 2 | No | Yes | … | Yes |
+--------+---------+------------+------------+------------+---+-------------+
有关于谁回答的时候这个问题做了更多的属性。如点所示,有3个以上的问题,实际上有97个问题。 目前我已经将excel文件导入到我的原始表格中,该表格代表了我的准备区域(它具有与第一行作为标题的excel文件完全相同的格式)。现在,当我想把数据放入分期时,我正在为布局挣扎。于是我想到了布局和因为我的老板告诉我,这些问题可能在将来改变,我想出了下面两个表:
+------------+---------------------+
| DIM_Questionnaire |
+------------+---------------------+
| PK | SUR_QuestionnaireID |
| FK | LocationID |
| FK | TimeKey |
+------------+---------------------+
+--------------+-----------------+
| DIM_Question |
+--------------+-----------------+
| PK | SUR_QuestionID |
| FK | QuestionnaireID |
| | Question |
| | Answer |
| | Category |
+--------------+-----------------+
调查,然后添加到事实表。您如何看待仓库中的这种解决方案?此外,我怎样才能从原始表中获取列名作为问题表中的值?
谢谢您的反馈!问题表中的答案不是用户给出的答案。我可以将答案加载到另一个表中,但之后我需要另一个连接。我不是故意将Survey表作为事实表,只是将它与事实表相关联,因为它不仅仅是问卷。 –
如果受访者给出的(许多不同的)答案在问题表中,那么它不应该是维度表。或者,至少它不应该被称为DIM_Questions,而是DIM_QuestionAnswers。如果可能的答案受到高度限制(例如“是”,“否”等等多选值),这将是有意义的。 – SebTHU
我认为最好的方法是将答案放在另一个表中,而不是将其包含在问题表中。尽管它是另一个表连接,但仍然值得做,因为如果有一个问题有很多用户给出的答案,那么你必须重复表中所有与问题相关的字段,以便存储不同的答案。问题是一个坏方法和一个设计。分析将很困难,您将使用不必要的存储。你认为怎么样 –