Mysql
 sql >> база данни >  >> RDS >> Mysql

данни за бързо синхронизиране на основни данни mysql база данни

Няма най-бърз начин, но определено мога да предложа нещо, което работи за мен. Най-добре или не - вие решавате.

Също така въпросът ви е много общ - тъй като обхваща цялата бекенд инфраструктура на мобилно приложение. Ще се опитам да бъда максимално конкретен -

1) Направете заявка за http публикация към php файл, който избира всички данни от базата данни mysql и връща резултата обратно на приложението -

След като получите резултата, можете да го анализирате в основни данни като примера по-долу -

    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) Проверете кои данни съществуват в основните данни => нищо за правене и кои данни са нови => запазете новите данни в основните данни -

Можете да направите добро старо главен разговор с Time Stamp и да проверите дали данните са актуализирани. Ако данните са били актуализирани - може да стане малко трудно актуализирането на отделни атрибути на основни данни. Това, което винаги е работило за мен, е изтриването на 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() метод отново.

Надявам се това да помогне.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Конфигурация на индекс на Mysql

  2. Възможно ли е да се предаде променлива към извикване на съхранена процедура в mysql?

  3. Как да открием връщане назад в съхранената процедура на MySQL?

  4. Проблем с размера на качване в PHP и MySql

  5. Получаване на данни от mysql до StreamBuilder Flutter