如何在数据库中存储点击次数/选择次数

时间:2018-03-21 11:26:23

标签: mysql sql database database-design

我正在努力制作“你会宁愿”的应用。

这基本上涉及用户选择的两个选项(例如巧克力或香草)。

enter image description here

我希望能够存储人们选择每个选项的次数。

我只能想到一种方法:

将每个选项作为数据库中自己的行,并在每次用户选择时将其递增。

但是,这肯定需要在每次用户回答问题时提出请求,因此每分钟处理(取决于用户数量)数千个请求?两个人试图立即更新价值会不会有问题?

我不确定这样做的最佳方式是。

2 个答案:

答案 0 :(得分:2)

我不知道你正在使用的编程语言,所以我会给出一个通用的答案。 如果您想从数据库中保存往返,一个解决方案是创建一个临时文件,其中包含对您的选项的投票。用户选择选项时,可以更新此文件。要将这些值放在数据库中,您可以创建一个后台作业,该作业将收集数据并以预定的方式将其存储在数据库中,这将导致在数据库中没有当前数据的缺点,但我认为这将超过其好处。

答案 1 :(得分:1)

我建议有一个持有个人投票的桌子。它可以有三列,ID,IP地址/用户名(或其他识别位信息以阻止重复投票)以及他们投票的内容。

每当您想要计算当前投票时,您可以在过滤掉重复的IP地址/用户名时执行计数查询。

如果您担心数据库可扩展性,可能需要考虑将插入缓冲到数据库中。例如,每20秒左右存储一次投票并进行批量插入。