Sql server 包含大量列的数据库设计表
我有一个调查要做。还有30个是/否问题(有4种类型A、B、C、D)。若答案为否,用户应给出原因。我想创建一个表,其中有30多列的答案,列名如下Sql server 包含大量列的数据库设计表,sql-server,database-design,Sql Server,Database Design,我有一个调查要做。还有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页面的最简单方法。 有什么建议吗?选项1: QuestionId - int primary ke
A1、A2…A7、B1、B2…C1、C2…D1、D2…D8.
他们的数据类型是位。我创建了另一个表,只用于1:1关系的注释。列名
'A1Cm,A2Cm,...A7Cm,B1Cm.....D8Cm'
我认为这不是一个好的设计。但这是将数据加载到asp.net页面的最简单方法。
有什么建议吗?选项1:
QuestionId - int primary key,
QuestionType - bit - A1,A2...A7,B1,B2,...C1,C2...D1,D2...D8
QuestionComment - varchar
备选案文2:
可以考虑添加<代码> QuestionType < /代码>和/或<代码>问题评论< /代码>表:
问题表:QuestionId - int primary key,
QuestionTypeId - int (forigen key QuestionType(Id))
QuestionCommentId - int (forigen key QuestionComment(Id))
Id
QuestionType
Id
QuestionComment:
问题类型:
QuestionId - int primary key,
QuestionTypeId - int (forigen key QuestionType(Id))
QuestionCommentId - int (forigen key QuestionComment(Id))
Id
QuestionType
Id
QuestionComment:
问题评论:
QuestionId - int primary key,
QuestionTypeId - int (forigen key QuestionType(Id))
QuestionCommentId - int (forigen key QuestionComment(Id))
Id
QuestionType
Id
QuestionComment:
最好创建一个问题表来描述每个问题,创建一个用户表来描述每个用户。然后是第三个表,用于处理用户和他们的答案之间的关系。比如:
user( user_id, name, date_answered, ... )
question( question_id, question_type, name, question_text, ... )
answer( user_id, question_id, answer, comment, ... )
用户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" )