Android中的解析平台使用联接

时间:2019-04-29 09:52:22

标签: android parse-platform back4app

我正在使用基于解析平台数据库的back4app构建应用。

我的数据库架构是这样的:

Users table:
id
User_name
....
Items table:
id (f)
Item_name
Count
.....
User item table:
Id
User_id
Item_id
item_status
item_notes
......

我要实现的是让item_name来获得user_id,如何在Android中使用parse来实现?

编辑:要明确...每个项目都将在User_Item表中定义,即使它是同一项目,因为用户可能随时更改。 这就是为什么我希望user_iditems表中获得item_name的原因。

1 个答案:

答案 0 :(得分:2)

我假设您要查询“用户项目表”,所以...

首先,您的itemId字段应该是指向“ Items table”中对象的指针,这样您就可以使用query.include("itemId");,这意味着“ Items table”中的对象也将随查询一起返回。

以下是对此内容进行完整查询的示例:

ParseQuery<ParseObject> query = ParseQuery.getQuery("UserItem");

query.include("itemId");

query.getFirstInBackground(new GetCallback<ParseObject>() {
  public void done(ParseObject object, ParseException e) {
    ParseObject item = object.getParseObject("itemId");
    String itemName = item.getString("Item_name");
  }
});

我不使用android SDK,因此此代码可能并不完美-请参阅android guide了解更多详细信息(我从此处删除了所有这些代码)。

编辑:

添加query.whereEqualTo("User_id", "xxxxx");以获取当前用户的用户项(将xxxxx替换为用户ID)。

ParseQuery<ParseObject> query = ParseQuery.getQuery("UserItem");

query.include("itemId");
query.whereEqualTo("User_id", "xxxxx");

query.getFirstInBackground(new GetCallback<ParseObject>() {
  public void done(ParseObject object, ParseException e) {
    ParseObject item = object.getParseObject("itemId");
    String itemName = item.getString("Item_name");
  }
});