Какой лучший способ вести отдельную запись для каждого пользователя в Android? - PullRequest
0 голосов
/ 30 января 2012

В моем приложении у каждого пользователя есть таблица записей:
id, friend_name, message

Моя цель - сохранить эти данные в телефоне Android, чтобы каждый раз, когда пользователь входит в систему, он мог быстро заполнять этот список. На стороне сервера у меня уже была запись friend relationship ... и т. Д. Теперь я просто хочу сохранить небольшую базу данных на стороне Android для каждого пользователя, потому что загрузка с сервера занимает много времени, плюс я понимаю, что эти данные различны среди пользователей. Давайте скажем:
- У пользователя A есть сообщения: a, b, c
- У пользователя B есть сообщения: d, e, f
...

Я читал о SharePreference, но, думаю, здесь это неуместно, поскольку SP подходит только для значений key/pair. Затем я просматриваю базу данных sqllite, это просто. Но что я не понимаю, так это как мы можем быть уверены, что каждый раз, когда новый пользователь входит в систему, он / она будет иметь свою собственную базу данных, но не другие? Я могу сохранить key/pair значение flag для каждого пользователя в SharedPreference, чтобы проверить, существует ли база данных, но тогда где мне хранить эти базы данных? Для n пользователей мне придется хранить n баз данных, что кажется непрактичным.

Так, как лучше всего хранить мои данные в этом случае?

Ответы [ 2 ]

1 голос
/ 30 января 2012

Вы не создадите новую базу данных для каждого пользователя. На чем нужно сосредоточиться - это на хорошем дизайне базы данных. В этом конкретном случае вы бы создали таблицу для сообщений, таблицу для пользователей и таблицу, в которой хранятся ссылки между пользователями и сообщениями с использованием их идентификаторов. Когда пользователь входит в ваше приложение, вы найдете сообщения, которые связаны с этим пользователем. Хороший дизайн базы данных также гарантирует отсутствие избыточных данных (= дублирующих данных, например, для хранения одного и того же сообщения дважды). Посмотрите на нормализацию базы данных, если вы хотите узнать больше об этом.

0 голосов
/ 30 января 2012

Вы можете использовать поведение UUID.getRandomUUID (). Я видел это в фильме GOOGLE I / O Protips.

http://www.youtube.com/watch?feature=player_embedded&v=twmuBbC_oB8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...