我的web应用程序处理民意调查(调查)。现在我有2个表作为数据库模式的一部分。需要关于反规范化处理对民意调查的响应的数据库的建议
polls
id
question
choices (ex: yes,no,maybe)
created
polls_responses
poll_id
user_id
tracker_id
response
这样做的问题是,在一些民意调查我有很多的响应(> 1000)。人们可以查看投票结果,它会显示有多少用户投了赞成,不赞成,或者可能有多少匿名用户投赞成,不赞成,或者可能。问题在于,无论用户何时查看投票结果,都必须遍历所有响应,并计算总响应数,每个选项的响应数,用户每次选择的响应数,以及tracker_id(匿名用户)对每个选择的响应数量并计算百分比并将其显示在条形图中。这使得页面加载非常慢。我想非规范化的数据库,以提高性能,使我们有这样的事情
polls
id
question
choices (ex: yes,no,maybe)
total_responses (ex: 10,3,3,4)
user_responses (ex: 5,2,2,1)
anon_responses (ex: 5,1,3,1)
created
polls_responses
poll_id
user_id
tracker_id
response
也就是说,在total_responses
值,10为总,3是响应#供选择yes
,3是选择的响应数#no
,并且4是选择的响应数#maybe
。相同的格式适用于user_responses
和anon_responses
字段。如果我能就这种方法得到一些意见,将不胜感激!谢谢你的时间。
编辑:我使用的是MySQL