данные быстрой синхронизации данных ядра базы данных mysql

в моем быстром приложении 2 пользователь может сохранять данные в основных данных. в будущем я хотел бы понять, что данные будут сохраняться в основных данных и в базе данных MYSQL.

как лучше всего синхронизировать данные между основными данными и mysql

моя идея состояла в том, что при каждом запуске приложения начнется процесс:

  • сделайте запрос на отправку http в php-файл, который отображает все данные базы данных mysql и возвращает результат в приложение.
  • проверить, какие данные существуют в базовых данных => ничего не делать, а какие данные новые => сохранить новые данные в основных данных

это лучший и быстрый способ сделать это?

Related of "данные быстрой синхронизации данных ядра базы данных mysql"

Существует не быстрый способ, но я могу определенно предложить что-то, что работает для меня. Лучше или нет – решать вам.

Также ваш вопрос очень общий – поскольку он охватывает всю внутреннюю инфраструктуру мобильного приложения. Я постараюсь быть настолько конкретным, насколько могу,

1) Сделайте запрос на отправку http в файл php, который отображает все данные базы данных mysql и возвращает результат в приложение –

Как только вы получите результат, вы можете проанализировать его в Core Data, как пример ниже –

func writeDataToSqliteStore() throws { // Configure the Network Call here with NSURL & NSData returning an array that you can write to the Core Data SQLITE backend. do { jsonResponse = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions()) as? NSArray } catch { print(error) } let localEntity = self.insertNewEntity("EntityName") as? CoreDataEntityClass for singleObject in jsonResponse { localEntity.name = singleObject.valueForKey("name") localEntity.address = singleObject.valueForKey("address") } } 

2) Проверьте, какие данные существуют в основных данных => ничего не делать, и какие данные являются новыми => сохранять новые данные в основных данных –

Вы можете сделать хороший вызов головы с помощью отметки времени и проверить, были ли данные обновлены. Если данные были обновлены – это может привести к небольшому сложному обновлению отдельных атрибутов Core Data. То, что всегда работало для меня, – это удаление бэкэнд SQLITE на устройстве и повторный запуск метода записи данных. Вы можете использовать приведенный ниже пример –

 func removeSQLITEFiles() { let fileManager = NSFileManager.defaultManager() let URL1 = self.applicationDocumentsDirectory.URLByAppendingPathComponent("File.sqlite") let URL2 = self.applicationDocumentsDirectory.URLByAppendingPathComponent("File.sqlite-wal") let URL3 = self.applicationDocumentsDirectory.URLByAppendingPathComponent("File.sqlite-shm") if fileManager.fileExistsAtPath(URL1.path!) { do { try fileManager.removeItemAtURL(URL1) } catch {error} } if fileManager.fileExistsAtPath(URL2.path!) { do { try fileManager.removeItemAtURL(URL2) } catch {error} } if fileManager.fileExistsAtPath(URL3.path!) { do { try fileManager.removeItemAtURL(URL3) } catch {error} } } 

После этого вы снова можете запустить метод writeDataToSqlieStore() .

Надеюсь, это поможет.