使用Parse限制呼叫次数

Tom*_*mCB 8 database android many-to-many realm

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

基本信息

该应用程序允许用户上传地点,附加标签,图片等.

DBS

我使用Realm作为离线Db&Parse.com作为在线Db.

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

为了构建这个,我用realm做了这个:1.创建place对象2.对于每个给定的标记,创建一个标记对象并添加place对象关系3.获取place对象并添加标记对象关系

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

我正在使用Parse构建在线版本,并意识到这种方法将导致许多调用.

可能解决方案

  • 不要将标记对象关系添加到位置关系(步骤3),而是查询标记类以寻找与位置对象的关系.(可能很慢?)
  • 有没有办法建立模型'离线'并将其作为一个整体推动?

由于我是这种逻辑的新手,我希望这个问题很明确.我知道它很广泛,但我认为最好解释一下这个案例.

Ral*_*ius 4

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

\n\n

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

\n\n
    \n
  1. 制作 Place 对象
  2. \n
  3. 检查标签对象是否存在。如果没有就创建一个。
  4. \n
  5. 将标签对象与解析关系中的位置对象相关联
  6. \n
\n\n

这是代码示例:

\n\n
// let\xe2\x80\x99s say we have a few objects representing Place tags\nParseObject tagOne=\nParseObject tagTwo =\nParseObject tagThree =\n\n// now we create a place object or specify the one you want to update\nParseObject place= new ParseObject("Place");\n\n// now let\xe2\x80\x99s associate the tags with the place\n// remember to create a "tags" relation on Place\nParseRelation<ParseObject> relation = place.getRelation("tags");\nrelation.add(tagOne);\nrelation.add(tagTwo);\nrelation.add(tagThree);\n\n// now save the book object\nbook.saveInBackground();\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

编辑如下评论

\n\n

如果您想查找具有给定标签的所有地点,您可以这样做:

\n\n
ParseObject tag = ....\nParseQuery<ParseObject> query = ParseQuery.getQuery("Place");\nquery.whereEqualTo("tags",tag);\n
Run Code Online (Sandbox Code Playgroud)\n