Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
justjew
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 45
#1

Как сравнить две разных БД - Android

14.10.2016, 11:04. Просмотров 345. Ответов 8
Метки нет (Все метки)

Доброго времени суток, товарищи программеры.
Помогите разрешить мою проблему.
Разрабатываю приложение под Android, у него есть sqlite база. Также есть сервер на удаленной машине, написаный на Java. На этой машине MySQL база.
Необходимо чтобы андройд-приложение получало от сервера данные с mysql-базы и записывало эти данные в свою sqlite-базу.
Вопрос в следущем - можно ли как-то сравнить состояние этих двух баз, чтобы, если данные в sqlite актуальны, сервер ничего не возвращал приложению, а если в mysql-базе есть еще какие-то данные, то отправлял приложению эти новые данные, чтобы оно их у себя обновило?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2016, 11:04     Как сравнить две разных БД
Посмотрите здесь:

Android Как можно вызывать один класс в разных activity?
Android Как реализовать обмен данными между копиями одного приложения, установленными на разных устройствах
Сравнить текущую дату с строкой Android
Как сделать оптимальный размер шрифта для разных устройств Android
Android Как уместить две кастомные вьюхи на экране
Android Как подключаться к БД из разных активностей? Как создать 2 таблицы?
Android Как сформировать JSON для данных разных категорий?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
14.10.2016, 11:33     Как сравнить две разных БД #2
justjew, привет!
По каждой таблице можно, например, хранить или поиском получать id последней записи, сравнивать и отправлять новые данные.
justjew
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 45
14.10.2016, 11:56  [ТС]     Как сравнить две разных БД #3
То есть, что-то вроде контрольной суммы обеих баз получить нельзя, а потом сравнить их?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
14.10.2016, 13:23     Как сравнить две разных БД #4
justjew, вы смеётесь, что ли? БД каждую секунду меняться могут, надоест получать.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
15.10.2016, 14:27     Как сравнить две разных БД #5
Как вариант предложения CoolMind, можно использовать механизм контроля версий. Если на удаленном сервере была какая-либо транзакция, то где у себя на сервере меняйте условный номер. При запросе приложение сначала получат текущий условный номер и сравнивает со своим экземпляром. Если совпадает, то база не обновлялась. Если не совпадает, то скачиваете базу (или изменения в базе).
Паблито
2240 / 1813 / 564
Регистрация: 12.05.2014
Сообщений: 6,456
Завершенные тесты: 1
15.10.2016, 22:35     Как сравнить две разных БД #6
транзакция прошла и в какое-то поле записали такую же строку с точностью до символа
условный номер поменялся - скачиваем зря базу

напишите уже кто-нибудь equals() для двух баз данных для ТСа
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
16.10.2016, 08:31     Как сравнить две разных БД #7
Паблито, да, порой будут такие "пустые" скачивания, но сравнение баз данных заведомо более тяжелая операция.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
16.10.2016, 12:56     Как сравнить две разных БД #8
Паблито, видел и такую ситуацию. По каждой таблице, например, с ценами, напротив каждой записи был ещё столбец с версией этой записи. Допустим, неделю назад была версия 100, вчера - 103, а сегодня - 104. Соответственно, эти данные тоже надо скачивать. Так вот, за эту неделю цена могла поменяться, допустим, так:
1050.00 -> 1065.00 -> 1050.00. Но юзер вынужден скачивать все изменения, хотя их как бы не произошло. В таблице прописывается, что её текущая версия - 100, а на сервере - 104, и все записи с версиями больше 100 отдаются в JSON.

Добавлено через 1 минуту
Т.е. можно написать более интеллектуальный скрипт на сервере, но я пока не видел хорошего варианта.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2016, 14:37     Как сравнить две разных БД
Еще ссылки по теме:

Android CustomView разные изображения для разных экранов - одна система координат - Как?
Как установить программного ориентацию для разных экранов? Android
Как отметить две даты на диалоговом Календаре Android
Android Как обеспечить одинаковый размер картинки на разных экранах Android?
Подскажите как сделать разметку для разных экранов Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
zoleg
14 / 14 / 1
Регистрация: 10.01.2012
Сообщений: 138
24.10.2016, 14:37     Как сравнить две разных БД #9
Выгребаем те данные, при изменении которых требуется обновлять инфу на андроиде, подсчитываем контрольную сумму и складируем ее на сервере. При последнем обновлении БД с адроида отправляем с ней контрольную сумму.

При подключении андроида к серверу отправляем серваку сохраненную сумму. Если суммы равны сервер отбивает клиент. Если не равны, скидывает обновления и новую контрольную сумму.
Yandex
Объявления
24.10.2016, 14:37     Как сравнить две разных БД
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru