我有一项调查要做。另外30个是/否问题(有4种类型A,B,C,D)。如果答案是否定的,用户应该给出理由。我在想创建一个表,其中有30个列的答案,列名称就像
A1,A2...A7,B1,B2,...C1,C2...D1,D2...D8.
他们的数据类型有点。我创建另一个表只是为了1:1关系的评论。列名如
'A1Cm,A2Cm,...A7Cm,B1Cm.....D8Cm'
我不认为这是一个好的设计。但这是将数据加载到asp.net页面的最简单方法。 有什么建议吗?
答案 0 :(得分:0)
选项1:
QuestionId - int primary key,
QuestionType - bit - A1,A2...A7,B1,B2,...C1,C2...D1,D2...D8
QuestionComment - varchar
选项2:
您可以考虑添加QuestionType
和/或QuestionComment
表格:
<强> QuestionTable:强>
QuestionId - int primary key,
QuestionTypeId - int (forigen key QuestionType(Id))
QuestionCommentId - int (forigen key QuestionComment(Id))
<强> QuestionType:强>
Id
QuestionType
<强> QuestionComment:强>
Id
QuestionComment:
答案 1 :(得分:0)
创建一个描述每个问题的问题表和描述每个用户的用户表会好得多。然后是第三个表来处理用户与他们的答案之间的关系。类似的东西:
user( user_id, name, date_answered, ... )
question( question_id, question_type, name, question_text, ... )
answer( user_id, question_id, answer, comment, ... )
将为每个用户会话自动生成user_id列。
示例数据如下所示:
user( 555, "Some User", 2013-10-19 )
question ( 1, "A", "Dog question", "Do you like dogs?" )
answer( 555, 1, "NO", "I am afraid of them" )