0

我们网站的一部分要求向用户询问 20 个关于他们自己的多项选择题(“个人资料”)。网站的这一部分将被经常查看,并且偶尔会更新。该网站预计会产生大量流量,因此正在考虑尝试并为性能问题做准备。

我可以看到将其存储在数据库中的 3 种方法是:

  1. 为每个问题创建 1 个表,每个表都有 QuestionID 和 Answer,然后是 CustomerInfo 表来存储配置文件数据,外键映射到问题。

  2. Question、Question_Type 和 Answers 表。把所有东西都塞进这些结构里。我在这里特别关心的是更新配置文件所需的 20 个左右的插入。这是否会在高流量时对性能造成影响?

  3. 非规范化的单个表,每个问题一个字段,将答案代码硬编码在 HTML 和/或 C# 对象中。

我倾向于#2或#3。你认为最好的解决方案是什么?

4

1 回答 1

5

我将创建以下表格:

Survey (PK:SurveyID)
Question (PK:QuestionID, FK:SurveyID)
QuestionAnswer (PK:QuestionAnswerID, FK:QuestionID)
QuestionResponse (PK:QuestionResponseID, FK:QuestionAnswerID, FK:UserID)

您可以通过在一个语句中执行插入来最小化负载,例如:

insert into QuestionResponse
(QuestionAnswerID, UserID)
select 23, 3
union all
select 72, 3
union all
select 488, 3
于 2010-04-12T21:06:32.583 回答