2012-12-30 68 views
2

只要在這裏提出一些建議和建議,如果可以的話。建議:將sqllite ios同步到網絡的最佳方法

我正在創建一個iPad應用程序(IOS6),它將數據寫入設備上的本地數據庫,然後馬上或稍後將該記錄複製到Web服務(所以基本上是一項Cloud服務)。

你認爲這樣做的最好方法是什麼?

我想在本地數據庫中只有一個名爲「synced」的列,並且在創建記錄時立即將標誌設置爲「0」,然後立即或在常規期間將記錄與「0」同步記錄間隔。然後,當每個記錄被複制時,顯然將該標誌設置爲'1'。

我希望應用脫機工作,然後在設備與我的Web服務有可用連接時進行同步。

理想情況下,每個記錄應該立即或幾秒後複製,但是如果沒有網絡連接,我希望能夠將複製排隊。

那麼最好的方法或實現這個你認爲是什麼?在此先感謝:)

回答

2

該解決方案將取決於你的整體解決方案有多複雜。

例如,如果記錄只在本地設備上創建,然後上載,並且未經修改,那麼您的解決方案就足夠了。

但是,如果您允許更新本地設備上的記錄,或者記錄一旦進入Web服務就可以更新,那麼您需要開始管理衝突解決方案。我們解決這種情況的方法是在「主」數據庫(由Web服務更新的數據庫)中記錄時間戳,並在記錄作爲新記錄或更新進行上載時同步該時間戳。當用戶更新記錄時,我們發送時間戳,並且如果數據庫中的值與發送的數據庫不同,則拒絕更新請求。當然,這種衝突解決方案有不同的方法,這隻適用於我們的應用程序和用戶。

+0

本地記錄一旦寫完就永遠不會改變。這聽起來像我在正確的道路上。 – Bobster4300

+0

是的,絕對。如果它們是一次寫入,則無需變得複雜。 –

+0

謝謝你的建議 – Bobster4300