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

Синхронизация баз данных через облако - Android

Войти
Регистрация
Восстановить пароль
 
contedevel
 Аватар для contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 589
11.01.2015, 02:48     Синхронизация баз данных через облако #1
Здравствуйте!
Имеется несколько баз данных на разных ОС, включая Android, беда в том, что есть локальная и удаленная БД.
И нужен какой-то однозначный способ нумерации строк, чтобы при слиянии в момент синхронизации локальных БД на разных устройствах, возможно, даже ОС, гарантированно не повторялись идентификаторы (ID).
Решил ввести ячейку, в которую при первом создании строки прописывается timestamp, но не знаю, на сколько это удачное решение, я не особо осведомлен, одинаково ли работает отсчет времени на разных машинах?
Кто сталкивался? Какое рациональное решение можно применить для получения уникальных ID на разных машинах?
Заранее благодарю за помочь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2015, 02:48     Синхронизация баз данных через облако
Посмотрите здесь:

Android + БД + Облако Android
Android Передача данных через bluetooth
"Синхронизация" баз SQLite двух устройств Android
Синхронизация данных приложения между устройствами Android
Запрос данных по ID из нескольких баз данных Android
Взаимодействие баз данных на сервере и мобильном устройстве Android
Android Синхронизация баз данных на клиенте и сервере
Android Возможно ли создание двух баз данных
Ввод данных через AlertDialog Android
Как хранить данные в интернете (хостинг, облако)? Android
Android Правильное проектирование баз данных при очень частом обращении
Android Передача данных через Intent

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
krapotkin
 Аватар для krapotkin
1969 / 1915 / 491
Регистрация: 14.04.2014
Сообщений: 9,363
11.01.2015, 10:17     Синхронизация баз данных через облако #2
задача репликации и слияния БД.
общее решение состоит в том, чтобы не зависеть от ID в разных БД
перенося данные в другую БД, мы даем им другие ID
задача сводится к контролю ссылок по этим ID
если таблица 2 ссылалась на ID в таблице 1 и ID=M то, при замене его на N, это значение нужно изменить в обеих таблицах

для конкретных случаев можно придумывать конкретные алгоритмы, чтобы "сэкономить"
например, если можно выделить натуральный, не абстрактный ключ в таблице, можно пользоваться им для слияния баз

еще более удобный способ - делать изначально БД в облаке и обращаться к ней со всех систем
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
11.01.2015, 10:23     Синхронизация баз данных через облако #3
Может сделать разные правила генерации ID? Например локально ID задаются начиная с 5 с шагом 10, в облаке начиная с 10 с шагом 10. Т.е. все локальные ID будут 5, 15, 25 и т.д., а в облаке 10, 20, 30 и т.д., таким образом они гарантировано не пересекутся.
krapotkin
 Аватар для krapotkin
1969 / 1915 / 491
Регистрация: 14.04.2014
Сообщений: 9,363
11.01.2015, 10:30     Синхронизация баз данных через облако #4
тоже вариант
решение конкретно под случай всегда выгоднее решения в общем виде

а что делать если два андроид устройства передают данные?
как их отличать?
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
11.01.2015, 10:41     Синхронизация баз данных через облако #5
Цитата Сообщение от krapotkin Посмотреть сообщение
а что делать если два андроид устройства передают данные?
Ну да, тут не известно как у ТС это все организовано. Два устройства еще можно различить, но может быть и 10000 андроид устройств. Можно еще в качестве primary key UUID использовать (или даже GUID), но это не хорошо для primary key, но зато досточно уникально.
Yandex
Объявления
11.01.2015, 10:41     Синхронизация баз данных через облако
Ответ Создать тему
Опции темы

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