0

我有一个在 tableView 中呈现内容的 iOS 应用程序。我添加了一个与我的数据库交互的“喜欢/不喜欢”功能(我使用 Parse.com)。每次有人喜欢/不喜欢某个内容时,都会将详细信息发送到 Parse 数据库。对于每条内容,我想计算并显示“喜欢”与“喜欢”+“不喜欢”的百分比。这是一个非常简单的数学运算,但我无法理解设计数据库表的最佳方法以及在 tableView 实际出现之前计算每条内容的“喜欢”百分比的最有效方法。

实际上,我的 tableView 中已经有一个循环,viewDidLoad它将另一个数据库表中的内容与“喜欢/不喜欢”表进行比较,以恢复用户的“喜欢/不喜欢”按钮状态(如果他们已经喜欢/不喜欢一块内容)。

起初,我想在初始viewDidLoad循环中创建一个数组。但是,使用whereKey: equalTo:每个片段内容的查询类型来简单地查找喜欢/不喜欢的数量需要很长时间。正如预测的那样,它也非常缓慢cellForRowAtIndexPath

最坏的情况是,我可以在服务器端进行这些计算,然后只提取“喜欢”的百分比。但是,我想以某种方式在应用程序中实现这一点。我是一个完整的初学者,所以我可能会做错这一切。

这是我的数据库表的基础: 在此处输入图像描述

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

  1. 每 1-3 分钟运行一次服务器端程序
  2. 当有人喜欢内容时向数据库发布更多数据(这将涉及对每个“喜欢”的额外数据库查询)。

我认为这两种选择对于我想要完成的事情来说都太昂贵了。

4

1 回答 1

0

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

与设备相比,您在服务器上拥有更大的处理能力。

于 2012-06-07T23:50:06.133 回答