Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Как сравнить две даты - C#
Есть две переменные допустим A и B. В A записан день, а в B записан месяц. К какому типу нужно привести A и B чтобы сравнить с текущими...

Как сравнить две даты? - Delphi
Есть форма для ввода данных о больничном(на картинке), как сделать что бы не можно было ввести дату "Больничный с" старше даты "Больничный...

Как сравнить две строки? - C++
Написал программу но не проходит сравнение вот это сравнение: bool flight_weight(char* flight) { if (predmet==flight) return...

Как сравнить две строки? - C (СИ)
Пожалуйста подскажите, как сделать, чтобы программа заработала. В данный момент, чтобы не ввел, отвечает "Неверно". Видимо, напутал что-то...

Как сравнить две строки? - Pure Basic
Чтобы не дублировать строки в ListIconGadget() как их сравнить? писать самопальное или есть готовое?

Как можно сравнить две БД - MS Access
Как можно сравнить две БД Аксеса с множеством таблиц на предмет отличия значений в таблицах. Также возможно расхождение по количеству...

8
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
14.10.2016, 11:33 #2
justjew, привет!
По каждой таблице можно, например, хранить или поиском получать id последней записи, сравнивать и отправлять новые данные.
0
justjew
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 47
14.10.2016, 11:56  [ТС] #3
То есть, что-то вроде контрольной суммы обеих баз получить нельзя, а потом сравнить их?
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
14.10.2016, 13:23 #4
justjew, вы смеётесь, что ли? БД каждую секунду меняться могут, надоест получать.
0
Alexvp
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 360
15.10.2016, 14:27 #5
Как вариант предложения CoolMind, можно использовать механизм контроля версий. Если на удаленном сервере была какая-либо транзакция, то где у себя на сервере меняйте условный номер. При запросе приложение сначала получат текущий условный номер и сравнивает со своим экземпляром. Если совпадает, то база не обновлялась. Если не совпадает, то скачиваете базу (или изменения в базе).
1
Pablito
2578 / 2060 / 642
Регистрация: 12.05.2014
Сообщений: 7,224
Завершенные тесты: 1
15.10.2016, 22:35 #6
транзакция прошла и в какое-то поле записали такую же строку с точностью до символа
условный номер поменялся - скачиваем зря базу

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

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

При подключении андроида к серверу отправляем серваку сохраненную сумму. Если суммы равны сервер отбивает клиент. Если не равны, скидывает обновления и новую контрольную сумму.
0
24.10.2016, 14:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2016, 14:37
Привет! Вот еще темы с ответами:

Как сравнить две даты - PHP
Как сравнить две даты чтоб между ними было 25 дней? Формат даты такой d.m.Y

как сравнить две таблицы - MS Access
мне надо сравнить две таблицы, да так, чтобы сведения которые отсутствуют в одной остались видны, а одинаковые сведения уничтожались. ...

Как в js сравнить две даты - JavaScript
Здравствуйте. Делаю валидацию и не знаю как сделать сравнение двух дат. У меня есть две переменные datat.val() и datad.val() в которых...

Как сравнить две таблицы ? - C#
Используется C# MySql Имеется Таблица 1 - редактируемая Таблица 2 - шаблон Сценарий


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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