2012-06-07 45 views
0

我有一个iOS应用程序,它提供了tableView中的内容。我添加了一个与我的数据库交互的“喜欢/不喜欢”功能(我使用Parse.com)。每次有人喜欢/不喜欢一段内容时,具体信息都会发送到Parse数据库。对于每件内容,我想计算并显示“喜欢”与“喜欢”+“不喜欢”的比例。这是非常简单的数学计算,但我无法围绕设计数据库表的最佳方式,以及在tableView实际出现之前计算每段内容的'喜欢'百分比的最有效方式。初学者数据库问题

正因为如此,我已经有一个循环我的tableView的viewDidLoad其内容从另一个数据库表比较的“喜欢/不喜欢”表恢复“喜欢/不喜欢”用户的按钮状态(如果他们已经喜欢/不喜欢一段内容)。

起初,我想到在最初的viewDidLoad循环中创建一个数组。但是,对每件作品使用whereKey: equalTo:类型的查询来简单地查找喜欢/不喜欢的数量需要花费很长时间。正如预测的那样,cellForRowAtIndexPath也很慢。

最坏的情况下,我可以使这些计算服务器端,只是拉'喜欢'的百分比。不过,我想以某种方式在应用中实现此功能。我是一个完整的初学者,所以我可能会把这全部弄错。

这里是我的数据库表的基础: enter image description here

编辑:我已经成功地构建计算的网友认为“喜欢”的内容的条百分比的服务器端程序。我的应用程序在运行时从数据库中提取这个百分比。为了在用户喜欢某物时使百分比变化更具响应性,我在本地计算更新的百分比。这里的问题是当用户退出应用程序并重新打开时,数据重新加载。如果服务器端程序最近没有运行,该应用程序将显示一个旧的“喜欢的”百分比(最新的%将不会被计算)。这两个解决方案,我认为解决这个问题是:

  1. 运行服务器端程序每1-3分钟
  2. 后更多的数据时,有人喜欢内容的数据库(这将涉及为每一个额外的数据库查询'喜欢')。

我觉得这两个选项对我所要完成的工作来说太贵了。

回答

0

我建议将计算留给服务器端,并用应用程序中的信息进行响应。这将使您无需处理和解析传入结果。

服务器上的处理能力高于设备上的处理能力。

+0

感谢您的帮助。请参阅我的编辑。我感谢您提供的任何其他建议。 – mnort9