我的数据库技能充其量是平庸的,我必须为调查数据设计数据模型.我已经对此有了一些想法,现在我觉得我陷入了某种EAV模型和涉及数百个表的设计之间,每个表都有数百个列(以及数千个记录).必须有一个更好的方法来做到这一点,我希望这个论坛上的聪明人可以帮助我.
我的问题是:我应该如何在RDBMS中对调查问题的答案进行建模?使用SQL Server是必需的.因此,应该从讨论中排除替代数据存储系统.(当然,有些应该并且将会被评估,但请不要在这里.)我不需要整个数据模型的解决方案,现在我只对Answers部分感兴趣.
我已经搜索了各种论坛,但我找不到真正的解决方案.如果已经在其他地方给过,请原谅我并提供一个链接,以便我可以阅读.
关于我必须处理的数据的一些假设:
我已经与不同背景的人讨论了这个话题,但还没有找到一个好的解决方案.我主要有两种意见.
我能想到的另一个选择是每个答案类型创建一个表,即一个用于多项选择题,一个用于自由文本问题等.这不是那么通用,它会导致很多联合,我想想,如果发明了新的答案类型,我将不得不添加一个表格.
很抱歉让您厌烦所有这些文字,感谢您的投入!
干杯,亚历克斯
PS:我在这里问了同样的问题:http://www.eggheadcafe.com/community/aspnet/13/10242616/survey-data-model--how-to-avoid-eav-and-excessive-denormalization.aspx
请参阅以下示例表.我想计算每一行的1.对于第一行,N_1必须是3,对于第二行,然后是1,然后是0.最后,我想将其合并到具有参数Table,Columns,Value的存储过程中.
CREATE TABLE Have
( Col1 INT NOT NULL
, Col2 INT NOT NULL
, Col3 INT NOT NULL
, N_1 INT NULL
)
INSERT Have (Col1, Col2, Col3)
VALUES
(1, 1, 1)
,(1, 1, 2)
,(1, 2, 2)
,(2, 2, 2)
Run Code Online (Sandbox Code Playgroud)