основные данные или файлы sqlite или plist

У меня есть ситуация, когда мне нужно хранить данные на локальном компьютере (iphone), и те же данные будут на веб-сервере, чтобы к ним могли получить доступ другие пользователи (например, отправка сообщений).

В части веб-сервера я не беспокоюсь, я создал все таблицы и отношения. но я беспокоюсь о хранении данных на стороне Iphone и правильно синхронизирую обе стороны.

Вот пример того, как я хочу использовать таблицу с обеих сторон (iphone и веб-сервер)

Таблица сообщений с: ID сообщения (первичный ключ с добавлением), ID пользователя c (12) и текстом сообщения C (100) Я могу отправить ID пользователя и текст сообщения на веб-сервер (используя URL) и получить первичный ключ идентификатора сообщения с веб-сервера.

Теперь моя дилемма заключается в заполнении уникального идентификатора (первичного ключа) для каждой записи в каждой таблице (будет целое число) погоды на стороне iphone или в базе данных веб-сервера?

Заранее спасибо. Шридхар


person Sridhar Bollam    schedule 04.09.2009    source источник


Ответы (2)


Поскольку вы не можете контролировать внутренние ключи в CoreData, и поскольку CoreData требует ОЧЕНЬ конкретную схему для работы, И вы не хотите напрямую связываться с SQL CoreData (у него есть все виды флагов в каждой строке, которые не указаны) t docuemnted), вы захотите иметь на сервере другую схему базы данных, отличную от схемы iPhone.

Для уникального идентификатора вам нужно просто добавить свой собственный столбец в CoreData и убедиться, что вы добавили к нему индекс.

Если вы собираетесь генерировать новые строки как на iPhone, так и на веб-сервере, вы захотите использовать некоторую схему, чтобы ключи были уникальными на обоих - проще всего было бы сгенерировать UUID с помощью CFUIIDCreate () и связанные функции и сохраните их в своей таблице в виде строки.

-Wil

person Wil Shipley    schedule 20.09.2009
comment
Спасибо за ответ, я сделал это, используя один столбец auto inc на веб-сервере, а затем получил идентификатор uinique с веб-сервера и заполнил его в столбце данных ядра iphone. - person Sridhar Bollam; 21.09.2009

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

person Kevlar    schedule 04.09.2009