2014-01-30 5 views
2

У меня есть база данных многих пользователей, которую я хочу хранить как на локальном, так и на моем сервере. Когда пользователь обновляет любую информацию, я успешно обновляю ее в локальной базе данных с использованием базы данных ядра. Но как изменить эту информацию на сервер? Я не получаю это, пожалуйста, помогите? Я думаю о sqlite файле на сервере каждый раз, когда пользователь обновляет свою информацию. но как отправить данные sqlite-файла на сервер?Отправить локальный файл sqlite на сервер

+0

Вы используете какие-либо веб-сервисы? – Ajay

+0

Когда данные находятся на сервере, нужно ли ему иметь доступ к/обновлять базу данных или это просто резервная копия, которая будет использоваться только в вашем приложении iOS? (Я принимаю последнее, если это CoreData). – trojanfoe

+0

Я бы просто передал обновление, а не весь файл sqlite. – ophychius

ответ

1

Добавить столбец в локальную базу данных, которая обновляется в последний раз. (Я думаю, что может быть способ заставить SQLite заполнить это полуавтоматически для вас, но даже делать это «вручную» не имеет большого значения.) Затем, когда вы хотите загружать обновления, запрос строк обновляется со времени последнего загрузить. Отправляйтесь на сервер как записи JSON.

Вы также можете сохранить отдельную таблицу, которая отслеживает обновления, но для более сложных сценариев.

2

Для этого вам нужно использовать некоторые тактики. Вот короткое объяснение этой работы.

1) Структура базы данных

2) Веб-сервис

Вы должны разработать базу данных на местном и серверной стороне и управлять флагом (Bool) и время обновления.

1) Как и при запуске приложения, вы должны проверить свои локальные данные и принять последнюю дату обновления и отправить запрос на сервер, что нового обновления после этой даты. Если есть какое-либо обновление, вы можете отправлять данные в результате этого веб-сервиса и обрабатывать этот ответ на локальном устройстве.

2) Когда вы выполняете некоторые изменения на локальном устройстве, вам необходимо управлять флагом, временем обновления и созданной датой. флаг покажет, что у него есть обновление на сервере или нет. Если обновлено, то Y в противном случае N. И вам нужно отправить созданную и обновленную дату с этим.

Во время этого запроса вам необходимо управлять в том же часовом поясе. Вы можете использовать стандартную часовую зону UTC, потому что могут быть шансы, что Пользователь может переключиться в разные временные зоны, чтобы справиться с этим.

Если вам нужно больше разъяснений, то вы можете запросить у нас чат http://chat.stackoverflow.com/rooms/43424/coders-diary

Такой подход, безусловно, работать для вас.

+0

@ да, я думаю, что это лучший подход, отправьте обновленные поля, а не весь файл sqlite. Предположим, изменил ли пользователь свой пароль, как я могу отправить обновленный пароль на сервер. Можете ли вы сказать мне фрагмент кода для этого? Как проверить, что данные были получены на сервере? есть ли какой-либо метод делегата, который вызывается? –

+0

Нет никакого метода делегата.Для этого вам нужно разработать некоторые пользовательские делегаты. Для получения дополнительной информации я предоставил вам свой URL-адрес чата. –

Смежные вопросы