2014-12-19 77 views
2

那麼,我正在iOS和Android上構建一個應用程序,並且這兩個應用程序都需要與雲數據庫MySQL同步。這兩個應用程序都可以脫機工作,所以我需要所有插入和更新功能。刪除可能不會被使用,但我仍然想知道。移動應用程序和雲之間的數據同步

那麼,我在這裏看到的是解決方案或想法或算法,需要做到這一點。

我在每張表上保留了CreatedOn和LastSync作爲時間戳列。

現在的問題是我應該每次總是檢查所有的行和所有的列?

我認爲我應該保留所有表格上的ModifiedOn列,並使用LastSync檢查每個設備ID。你們有什麼建議?

回答

0

也許這不是您正在等待的答案,但是在我正在開展的項目中,我們正在使用Azure移動服務。有一個Android和iOS SDK在他們實現脫機數據庫和Azure之間的同步(就像在Git中你可以調用推拉方法一樣)。

有一些限制(TableStorage是一個有限的MSSQL存儲),但你應該檢查出來。

+0

當然,如果我打算使用Azure,那麼我會努力去做。 – 2014-12-19 11:49:33

0

我知道這是兩年左右過期,但我一直在做(與Web API和PostgreSQL同步Android應用程序)一樣的東西

我做什麼到現在(仍在研究,如果這是最好的方式,這是我如何發現這個問題)是我保留last_update字段,時間戳記的數據是last_updated,以及一個帶有布爾值的更改字段,用於確定數據是否被更改(通過設備上的用戶操作)

所以當我執行同步時:

  • 我先數據庫複製到備份(如果有問題)
  • 我把所有的改變被標記(服務器處理衝突)的行
  • 然後之後,我覺得最大刪除它們
  • (LAST_UPDATE )的值,
  • 我從中減去一分鐘
  • 然後請求所有在該值後更新的行(這也將包含我發送的數據,因爲沒有辦法,除非出現問題,一行被設置爲在最後一個未被更改的行之前被last_update更改)

這可能會導致一些重複的數據被轉移(尤其是如果你經常發生很多變化),但在我的情況下,這是一種罕見的現象

相關問題