我正在使用Parse.com作为后端的Android应用程序。应用程序以列表形式显示每日食谱,用户可以喜欢任何食谱。这是解析类的基本和简单结构:
User (default):
id, title, ... etc
Recipe:
id, title, likesCount .... etc
UserRecipeLikes
id, recipe, user
我正在以likesCount的降序显示食谱。现在在列表中,我还必须显示用户是否具有LIKED特定配方的状态。我可以通过检查UserRecipeLikes表来轻松完成此操作,但问题就出现了。我正在使用Parse.com提供的免费计划,该计划每分钟限制1800个请求。如果我使用上述方法,即首先获取食谱,然后通过发送每个食谱的查询请求来检查每个食谱的状态,应用程序将很快用完请求配额。
另外,你可以在食谱类中看到likesCount字段,我知道这不是一个好主意。我也这样做是为了减少计算每个食谱的计数。
现在我很好奇,有没有更好的方法来实现LIKES功能并且没有用完查询配额?如有必要,我愿意改变课程结构和关系。
答案 0 :(得分:2)
获取类似信息只是一次API调用。因此,对于20的列表,您将使用20个额外的API请求。这对我来说似乎并不太重要。当然,如果您的应用程序获得了大量用户,您迟早需要扩展配额。
1。实际上可以选择将用户类中的喜欢保存为数组,以便您可以
List<Recipe> likedRecipes = (List<Recipe>) ParseUser.getCurrentUser().get("likedRecipes"); // not an API call!
但是,如果您希望阵列很大,则不鼓励这样做。我不会亲自这样做。
2。考虑到这一点,您可以删除所喜欢的表,并在用户类中使用名为Relation
的{{1}}字段。这样,对于20个配方的整个列表,使用一些逻辑,您只需使用1个API调用。
likedRecipes