[英]What is the most efficient way to sync clients with server database
我將開發一個可以在線和離線使用的移動應用程序。
我的問題是該怎么做。 最有效的方法是什么? 當管理員更改服務器數據庫並且客戶端要更新時,服務器應如何提供介於客戶端版本和服務器最新版本之間的數據。 例如:
服務器
客戶A
客戶B
當客戶端A要更新時,它應該獲得修訂版3-4,而當客戶端B要更新時,它應該獲得修訂版2-3-4。
提前致謝。
您可以在數據庫中創建修訂表(增量ID)。 客戶端上線后,在啟動時,您的應用會檢查服務器的最大ID,並將其與客戶端的修訂ID進行比較。 如果服務器的最大ID大於客戶端的最大ID,它將根據服務器上的修訂表更新系統(您可以將修訂更新的過程名稱插入其他列,以便可以在檢查過程中選擇過程名稱,然后針對更新,否則其他列可能包含說明)
客戶端的修訂不應大於服務器的修訂。 如果是這樣,則應降級客戶的修訂版本。
如果表中缺少修訂版本,那么這不是問題,您的修訂更新過程將不會針對該版本運行。 如果您使用的是sql存儲過程,則客戶端更新將如下所示:(客戶端的版本為R2,服務器的版本為R6,R5被admin刪除)
exec sp_revision_update R3
exec sp_revision_update R4
exec sp_revision_update R6
在此示例中,R5已從服務器中刪除,並且R6 必須包含先前版本的修復程序,因為某些客戶端在刪除R5之前可能已經擁有R5。
您可以嘗試使用“ ID”進行檢查,因此您會從客戶端收到最大ID,服務器會檢查客戶端是否需要更新,請在服務器中最大顯示ID。 ID為4,最大 ID客戶端為2(客戶端A),您將其從3更新為最后一個ID,否則將執行任何操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.