0

我是 iOS 开发的新手,我无法弄清楚如何在启动时有效地加载我的应用程序的数据。我的应用由一个 UITableView 组成,其中填充了歌曲列表。每个单元格显示有关歌曲的数据:当前用户评分(如果已评分)和平均值。用户评分(所有用户的平均评分)。我正在使用Parse进行后端数据存储。

在启动时,我的应用程序运行两个查询。第一个查询获取歌曲以填充表。然后计算平均值。用户评分(我的后端架构包括计数对象:rating1_count、rating2_count 等,当用户对歌曲评分时会增加)。它还将歌曲排序到单独的数据模型数组中:topTracksOfTheWeek、topTracksOfTheMonth、topTracksAllTime。

第二个查询获取当前用户的所有评分歌曲。然后,它将这个查询与第一个查询进行比较,以将用户评分数据嵌入到第一个查询中,从而形成应用程序的数据模型。

我想将第一个查询限制为 50 首歌曲以优化加载时间。但是,使用我当前的数据模型,我需要查询数据库中的所有歌曲来计算所有的平均值。用户评分,然后将歌曲排序到 topTracks 数组中。

我能想出的唯一解决方案是定期运行服务器端脚本来计算平均值。用户评分。我必须在我的数据库中为脚本排序的 topTracks 数组创建一个新类。在我的应用程序中,我会懒惰地对 topTracks 数组进行第三次查询。

4

1 回答 1

0

为什么不通过 a) 在添加新评分时存储和重新计算平均评分来最小化客户端和服务器端的操作 b) 获得排序和分页的歌曲,订单类型和页面大小可以支持不同的查询或相同的查询参数。

理想情况下,如果可以在服务器端进行计算,则不要在移动设备上进行任何计算。

于 2012-09-06T16:06:06.220 回答