полное обновление таблицы базы данных - PullRequest
1 голос
/ 06 февраля 2020

В настоящее время у меня есть конечная точка REST с базовыми c CRUD-операциями для базы данных sqlite.

Но мое приложение обновляет целых таблиц за раз (с кнопкой "сохранить")

Моя текущая идея / решение - сначала запросить данные, сравнить данные и обновить только те «строки», которые изменились.

Решение немного сложное, поскольку существует несколько различных типов. возможных изменений:

  1. Добавить строку
  2. Удалить строку
  3. Изменено содержимое строки (аналогично перемещению содержимого вверх или вниз)

Есть ли более простое решение?

Самое простое решение - немного грязное. (Удалить таблицу, создать таблицу и добавить каждую строку обратно)

1 Ответ

0 голосов
/ 06 февраля 2020
The solution is a bit complex because there are several
different types of changes that can be done:

Add row
Remove row
Row content changed (similar to content moving up or down)

Is there a simpler solution?

Простой ответ:

Да, вы правы.

Именно так вы и делаете.

Буквально нет простого способа сделать this.

Имейте в виду, что, например, Firebase полностью существует для этого.

Firebase стоит миллиарды, далек от совершенства и был создан самыми умными людьми. Он буквально существует для того, чтобы делать именно то, что вы просите.

Опять же, буквально нет простого решения того, что вы просите!

Некоторое общее прочтение:

Один из горстки приличных статьи на эту тему:

  1. https://www.objc.io/issues/10-syncing-data/data-synchronization/

Во-вторых, вы захотите ознакомиться с Firebase, поскольку нормальная часть вычислений сейчас либо с помощью решений baas syn c (например, Firebase, обычно без решения Sql), либо действительно вручную.

http://firebase.google.com/docs/ios/setup/

(я не особенно рекомендую Firebase, но вы должны знать, как использовать его столько, сколько вам Вы должны знать, как выполнять регулярные выражения, и вы должны знать, как писать sql звонки.)

Наконец, вы не можете создавать c iOS приложений без Core Data,

https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CoreData/index.html

Базовые данные ни в коем случае не решают описываемую вами проблему, но реально вы будете использовать ее, пока решаете проблему концептуально.

Вы можете наслаждаться царством,

https://realm.io

, что опять-таки - точно - решение проблемы, которую вы описываете. (Это, в основном, основная проблема c в типичной разработке современных приложений.) Как и в случае с FBase, даже если вам это не нравится или вы не хотите go использовать его в конкретном проекте, нужно быть знакомым с ним. .

Удачи! :)

...