【问题标题】:Limit number of calls in using Parse限制使用 Parse 的调用次数
【发布时间】:2015-05-30 07:44:55
【问题描述】:

我正在使用后端构建我的第一个应用程序。

一般信息

该应用程序允许用户上传地点、为其附加标签、图片等。

数据库

我将 Realm 用作离线数据库,并将 Parse.com 用作在线数据库。

示例

我正在构建数据库模型并尝试链接所有多对多关系。一个例子: 一个地方有多个标签(短字符串),一个标签可以有多个地方。

为了构建它,我使用领域做到了这一点: 1. 制作地点对象 2.对于每个给定的标签,制作一个标签对象并添加地点对象关系 3.获取place对象,添加tag对象关系

现在,当我拥有 place 对象时,我可以从一个地方获取所有标签。 我可以得到所有属于一个标签对象的地方。

我现在正在使用 Parse 构建在线版本,并意识到这种方法会导致很多调用。

可能的解决方案

  • 不要将标记对象关系添加到位置关系(步骤 3) 相反,查询标签类与地点对象的关系。 (可能很慢?)
  • 有没有办法“离线”构建模型并将其作为一个整体推送?

由于我是这种逻辑的新手,我希望问题很清楚。 我知道它很笼统,但我认为最好解释一下整体情况。

【问题讨论】:

    标签: android database many-to-many realm


    【解决方案1】:

    有几种方法可以在 Parse 中实现多对多关系。您可以根据相关对象的数量使用数组或关系。你可以在Parse's documentation阅读更多内容。

    在解析关系中,您可以在调用之前在关系中添加多个对象。让我以文档中的书籍和作者为例,并根据您的情况进行调整。流程是:

    1. 制作 Place 对象
    2. 检查标签对象是否存在。如果没有,请创建一个。
    3. 将标记对象与解析关系中的位置对象关联

    这是代码示例:

    // let’s say we have a few objects representing Place tags
    ParseObject tagOne=
    ParseObject tagTwo =
    ParseObject tagThree =
    
    // now we create a place object or specify the one you want to update
    ParseObject place= new ParseObject("Place");
    
    // now let’s associate the tags with the place
    // remember to create a "tags" relation on Place
    ParseRelation<ParseObject> relation = place.getRelation("tags");
    relation.add(tagOne);
    relation.add(tagTwo);
    relation.add(tagThree);
    
    // now save the book object
    book.saveInBackground();
    

    在下面编辑评论

    如果你想找到所有带有给定标签的地方,你可以这样做:

    ParseObject tag = ....
    ParseQuery<ParseObject> query = ParseQuery.getQuery("Place");
    query.whereEqualTo("tags",tag);
    

    【讨论】:

    • 但是我将无法获取标签对象并找到相关的地方。还检查标签是否存在是对每个标签的调用?
    • 您仍然可以进行查询以查找具有给定标签的所有地点。文档中有一个示例(例如,请参见我上面的编辑)。对于检查标签,也有几种方法,但我认为您可以在 Realm 数据库中添加一个字段,指示标签是否已添加到 Parse。它可以是一个带有 objectId 的字符串字段。
    • 这是我的问题的一部分:进行查询以查找具有给定标签的地点,这会比从标签对象中建立关系“地点”更好吗?
    • 您认为更多的是什么?一个地方的标签数量与一个标签中的地方数量。我的回答就像是对您的解决方案的指导,因为您是项目的所有者。选择是你的:)
    • 标签中的位置数可以更多!所以两个方向的多对多不是真的必要吗?您的指导真的很有帮助,一定会得到回报!
    猜你喜欢
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 2017-05-19
    相关资源
    最近更新 更多