1

我有一个调查要做。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 页面的最简单方法。有什么建议吗?

4

2 回答 2

0

选项1:

QuestionId - int primary key, 
QuestionType - bit - A1,A2...A7,B1,B2,...C1,C2...D1,D2...D8 
QuestionComment - varchar

选项 2:

您可以考虑添加QuestionType和/或QuestionComment表格:

问题表:

QuestionId - int primary key, 
QuestionTypeId - int (forigen key QuestionType(Id))
QuestionCommentId - int (forigen key QuestionComment(Id))

问题类型:

Id 
QuestionType

问题评论:

Id
QuestionComment:
于 2013-10-19T17:08:45.437 回答
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" )
于 2013-10-19T17:15:28.793 回答