Я борюсь с этой архитектурной проблемой на моем документе Parse.com. У меня есть следующий «схема», которая называется дебет:Архитектура от-до отношения NoSql
"createdAt": "2014-12-12T02:31:06.026Z",
"creator": {
"__type": "Pointer",
"className": "_User",
"objectId": "objectId"
},
"date": {
"__type": "Date",
"iso": "2014-12-12T02:31:14.437Z"
},
"debitStatus": 0,
"description": "Gdfvgg",
"from": {
"__type": "Pointer",
"className": "_User",
"objectId": "Sd9B1XyZVL"
},
"has_accepted": false,
"objectId": "objectId",
"to": {
"__type": "Pointer",
"className": "_User",
"objectId": "objectId"
},
"updatedAt": "2014-12-12T06:00:46.528Z",
"value": "6.48"
от и до «колонны» являются указателями на _User
таблице. Проблема в том, что в моем приложении для Android я хотел бы отображать как from
, так и to
дебетов в соответствии с зарегистрированным пользователем, но на моем адаптере отображается только пользователь «не зарегистрированного пользователя».
Я пробовал сделать запрос or
на Parse, чтобы получить все запросы дебетов, но я не могу включить указатель пользователя, потому что на or
запросов Parse не поддерживает.
Как это:
ParseQuery<ParseObject> query1 = new ParseQuery<ParseObject>("UserBalance");
query1.whereEqualTo("user_from", ParseUser.getCurrentUser());
ParseQuery<ParseObject> query2 = new ParseQuery<ParseObject>("UserBalance");
query2.whereEqualTo("user_to", ParseUser.getCurrentUser());
ParseQuery<ParseObject> query = ParseQuery.or(Arrays.asList(query1, query2));
Но проблема при показе "не я" адаптер:
адаптер:
ParseUser user = null;
ParseUser user1 = (ParseUser) object.get("user_to");
if (user1 == ParseUser.getCurrentUser())
user = (ParseUser) object.get("user_from");
else
user = user1;
Конечно, мне нужно получить пользователь, который в адаптере это не очень хорошая идея. Итак, есть ли лучший подход к стороне базы данных, чтобы улучшить это?
Благодаря
Правильно ли я понимаю, что адаптер представляет собой андроидный адаптер для отображения записей в списке? Это ParseQueryAdapter? – flup