какой xcode приложение для предварительного заполнения базы данных - PullRequest
0 голосов
/ 19 декабря 2010

Я все еще изучаю xcode и target-c.Я использую для создания приложения только для среды iPhone.Однако мне нужно реализовать приложение с существующей предварительно заполненной базой данных sql.

Для предварительного заполнения базы данных я не хотел бы использовать код в распределенном приложении, но я бы предпочел иметь отдельное приложение для

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

Итак, вопросы:

  1. это возможный сценарий
  2. если да, какое приложение я должен встроить в xcode для предварительного заполнения базы данных?

спасибо

Ответы [ 2 ]

1 голос
/ 19 декабря 2010

Нет причин, по которым у вас не может быть одного приложения, которое использует базу данных и загружает обновления.Поддерживать обновление базы данных без загрузки целиком довольно просто.

Если вы записываете метки времени создания и изменения строк в базе данных на сервере и отслеживаете те же метки времени модификации на устройстве, обновляя базу данныхработает следующим образом:

  1. Устройство определяет отметку времени последней модификации, установленную для данной таблицы.Мы назовем это latestTimestamp .Он отправляет latestTimestamp на сервер.

  2. Сервер сравнивает latestTimestamp с отметками времени создания и изменения в базе данных.Сервер отправляет обратно данные, основанные на результате сравнения:

    • Если отметка времени изменения раньше , чем latestTimestamp , отправлять не нужнозапись, устройство уже имеет его;

    • Если отметка времени изменения позже , чем latestTimestamp , и отметка времени создания ранее , чем latestTimestamp , отправляет запись обратно, отмечая, что она должна быть обновлена ​​ в базе данных устройства;

    • Если метка времени изменения позже чем latestTimestamp и метка времени создания позже чем latestTimestamp , он отправляет запись обратно, отмечая, что она должна быть добавлена ​​ в базе данных устройства.

  3. Наконец, серверная база данных должна отслеживать удаленные записи и метку времени удаления для каждой записанной записи.Если latestTimestamp на позже , чем отметка времени удаления, он отправляет обратно, что запись должна быть удалена.

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

Используйте асинхронные запросы данных (библиотека ASIHTTPRequest делает это быстрым) и обновляйте данные в фоновом режиме, пока пользователь использует приложение.Если необходимо обновить данные до какого-либо взаимодействия с ними, вы можете отобразить индикатор активности и попросить пользователя подождать.

Нет необходимости в отдельном приложении.

0 голосов
/ 19 декабря 2010

Я бы отговорил вас от этого. Независимо от того, является ли это приложением с предварительно заполненной базой данных или приложением с обычным назначением, Apple Review Team будет применять к ним одну и ту же процедуру, заставляя разработчика ждать несколько недель, прежде чем это приложение будет наконец доступно в App Store.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...