我正在使用后端构建我的第一个应用程序。
一般信息
该应用程序允许用户上传地点,为其添加标签,图片等。
的Dbs
我正在使用Realm作为离线Db& Parse.com在线Db。
示例
我正在构建数据库模型并尝试链接所有多对多关系。一个例子: 一个地方有很多标签(短字符串),一个标签可以有很多地方。
为了构建这个,我用领域做了这个: 1.制作场所物体 2.对于每个给定的标记,创建一个标记对象并添加位置对象关系 3.获取place对象并添加标记对象关系
现在,当我有place对象时,我可以从一个地方获取所有标签。 我可以获得属于标签对象的所有地方。
我正在使用Parse构建在线版本,并意识到这种方法会导致许多调用。
可能的解决方案
由于我是这种逻辑的新手,我希望问题很明确。 我知道它很广泛,但我认为最好解释整个案例。
答案 0 :(得分:4)
在Parse中有几种方法可以实现多对多关系。您可以根据相关对象的数量使用数组或关系。您可以在Parse's documentation中阅读更多内容。
在Parse Relations中,您可以在进行调用之前在关系中添加多个对象。让我在文档中选择Book and Author示例并根据您的情况进行调整。这个过程是:
以下是代码示例:
// 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);