Как принято хранить и обновлять БД

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
yadino
Сообщения: 3
Зарегистрирован: 17 янв 2015, 09:19

Как принято хранить и обновлять БД

Сообщение yadino » 17 янв 2015, 09:32

коллеги, подскажите как лучше хранить данные. Я делаю свое первое приложние на андроид, до этого на пхп всё писал.
Это будет словарик, с разделением по урокам. В каждом уроке 10 слов, и они будут обновляться еженедельно. Всего около 3 таблиц полей по 7, около 10к строк в перспективе.
Я предполагаю что будет локальная SQLite где эти слова хранятся, но как ее обновлять, не понимаю. Приложение должно ее выкачивать с моего вебсервера? Как это в общих чертах принято реализовывать?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как принято хранить и обновлять БД

Сообщение Foenix » 17 янв 2015, 10:17

вопрос расплывчатый. Что именно не понимаешь? какими классами пользоваться для работы с БД, или какие данные хранить?
Если второе - то нужно определиться с ТЗ, то ли будет онлайн доступ постоянный, то ли оффлайн и синхронизация, то ли у тебя будет добавление пользователем слов в словарь, то ли не будет.. что будет скачиваться - вся база или только часть какая-то
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198


yadino
Сообщения: 3
Зарегистрирован: 17 янв 2015, 09:19

Re: Как принято хранить и обновлять БД

Сообщение yadino » 17 янв 2015, 11:09

Будет оффлайн и синхронизация. Например при загрузке приложения у пользователя скачались 10 уроков по 10 слов в каждом. Все. В оффлайне он может ими пользоваться. Далее, я как админ на сайте проекта в MySQL добавил еще три урока по 10 слов. У пользователя появляется возможность выбрать новый, 11 урок. При выборе он выкачивается полностью.
Вопрос: лучше выкачивать один новый урок, который выбирает пользователь, или сразу 10, с прицелом на будущее? ИМХО сразу 10. Цель- позволить ему учить эти слова в оффлайне
Вопрос 2: как правильно синхронизировать БД на мобильном устройстве и БД на сайте сервиса? Учитывая что одна из них SQLite а вторая MySQL. Это уже чисто технический вопрос, какими классами и как принято делать такую синхронизацию.

p.s. А как работать с SQLite я вчера разобрался. Я имею ввиду стандартные операции- создать БД, сделать запросы к ней, получить выборки данных.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Как принято хранить и обновлять БД

Сообщение altwin » 17 янв 2015, 11:30

Попробуйте это - https://parse.com/docs/android_guide , там и посмотрите как оно организованно. Ну а вообще как для server side разработчика вопрос странный. Решение ведь стандартное никуда не делаось - REST. А сколько брать уроков и когда что выполнять - это вопрос риторический и зависит от конкретного примера. Вы должны забирать с сервера уроки в бекграунде, чтобы никому не мешать таким образом чтобы часть пользователю всегда была доступна, возможно по 10 или по 100, возможно по 1, тут все очень зависит от конкретных требований. Если вы можете пока у вас к примеру splash на экране загрузить всею базу, то вам не зачем разбивать загрузку. Другое дело, что еще нужно отсортировать, обработать, а это тоже время, потому для корректного ответа нужно видеть больше деталей.

P.S. вы же не будете создавать в sqlite аналогичную структуру с mysql, вам скорее всего придется фильтровать и запрос и результат, опять же сортировки можно перенести на сервер прямо в sql запрос, но тут тоже структуру базы надо понимать. В обще сначала нужно начать что -то делать.
Изображение

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как принято хранить и обновлять БД

Сообщение Foenix » 17 янв 2015, 15:55

там можно по-разному сделать, а синхронизацию, например, через account manager и sync manager - стандартные классы в андроиде. Они все делают в сервисах, в фоне, на подобие синхронизации того же gmail и так далее.
Как пример, можно посмотреть приложение гугла google I/O conferences - открытый исходный код на гитхабе, там статьи есть у них в блоге, поясняющие синхронизацию (как технически у них реализовано) и REST для синхронизации.
А сам алгоритм синхронизации .. можно свой придумать (тут все достаточно просто, ведь пользователь не изменяет данные уроков?), можно в интернете посмотреть :)
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

yadino
Сообщения: 3
Зарегистрирован: 17 янв 2015, 09:19

Re: Как принято хранить и обновлять БД

Сообщение yadino » 18 янв 2015, 08:24

Foenix, altwin спасибо!

Ответить