alc*_*cal 0 sql ddl database-design denormalization sql-server-performance
我们网站的一部分要求用户询问20个关于他们自己的多项选择题("个人资料").网站的这一部分将经常被查看,并偶尔更新.该网站预计会产生大量流量,因此正在考虑尝试和准备性能问题.
我可以看到将这三种存储方式存储在数据库中:
为每个问题创建1个表,每个表都有QuestionID和Answer,然后是CustomerInfo表来存储配置文件数据,外键映射到问题.
问题,Question_Type和Answers表.把所有东西都塞进这些结构中.我在这里特别关注更新配置文件所需的20个左右的插入.这是否会在高流量时受到性能影响?
非规范化单表,每个问题一个字段,在HTML和/或C#对象中硬编码答案代码.
我倾向于#2或#3.您认为什么是最佳解决方案?
我会创建以下表格:
Survey (PK:SurveyID)
Question (PK:QuestionID, FK:SurveyID)
QuestionAnswer (PK:QuestionAnswerID, FK:QuestionID)
QuestionResponse (PK:QuestionResponseID, FK:QuestionAnswerID, FK:UserID)
Run Code Online (Sandbox Code Playgroud)
您可以通过在一个语句中执行插入来最小化负载,例如:
insert into QuestionResponse
(QuestionAnswerID, UserID)
select 23, 3
union all
select 72, 3
union all
select 488, 3
Run Code Online (Sandbox Code Playgroud)