我正在使用基于解析平台数据库的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_id
从items
表中获得item_name的原因。
答案 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");
}
});