2012-12-17 38 views
0

我需要一些建议:跟踪的点击来自多个用户

我开发一个Rails应用程序在多个用户点击一个按钮。我需要知道按钮被点击的次数,并在点击量达到特定数量时禁用按钮。

有什么更好?

  1. 在按钮表中包含一个名为“clicks”的列,每次单击该按钮时将数字更新1?
  2. 创建一个点击表并在每次单击该按钮时插入一行,然后检查行数?
  3. 其他建议也会很好。

编辑

按钮可以点击每个用户无数次,我需要知道哪些用户造成按钮禁用。

我最初的想法是用4列的表格:titlegoaluser_idcurrent_number ,只是由1每次递增current_number和存储,使数量达到目标用户的用户ID。

+0

“更好”真的取决于你想要做什么。您需要在您的用例背后提供很少的上下文,以便我们能够更好地回答您的问题。您可能想问自己的一些问题:这是否应该类似于“喜欢”按钮?点击是匿名还是与用户对象关联?该按钮是否只允许每个用户点击一次,或者任何人都可以点击该按钮并将其增加无数次? – Noz

+0

@CycleHunter该按钮可以为每个用户增加无限次数,并且我需要知道哪个用户导致按钮被禁用。 – Deekor

回答

0

您的第一个解决方案看起来很合适,我看到的唯一缺点是,一旦达到点击的目标,您的current_number字段就会变得多余,但我并不认为有任何方法可以避免过度复杂化您的应用程序。

我认为你可能能够扩展的唯一可能是将某种背景排队系统与redis后端结合,如ResqueSidekiq。但是,如果性能是一个问题,我只会低头看这条路。

您可以在github上查看recommendable存储库,以获得类似的使用后台处理& redis的实现。