我試圖開發一個系統,讓用戶在自己的筆記本電腦更新本地,離線數據庫,並在重新連接到網絡上,與主,主數據庫同步其DBS期間序列化的數據。優勢DB同步
我看着MySQL的複製,但文件側重於單向同步。所以我想我要在Python中構建一個自定義應用程序(雙向同步),並且我有幾個問題。
我讀過幾篇關於這個問題的文章,其中一個被動提及的是序列化(我將通過python中的pickle和cPickle模塊實現)。有人能告訴我這是否是必要的,以及在同步數據庫的情況下序列化數據的優點?
一個在維基百科上關於序列條目用途的狀態它可以用作「用於檢測隨時間變化的數據的變化的方法。」這聽起來非常重要,因爲我的應用程序將查看時間戳以確定更新主數據庫時哪些記錄具有優先級。所以,我想我真的不明白的事情是在Python酸洗數據如何被用來「檢測隨時間變化的數據的變化」,以及這是否會補充使用時間戳的數據庫,以確定優先級或替換此方法完全。
反正,高水平解釋或代碼的例子都是受歡迎的。我只是想弄明白這一點。
由於
一些相關說明:1)請注意,泡菜模塊沒有任何安全保證;如果不受信任的源將創建數據(直接或間接),您將需要使用類似JSON的東西。 2)在使用時間戳時,並不是不可能的(事實上有時很有可能,由於批處理)許多條目將具有完全相同的時間戳(下降到毫秒,甚至可能是微秒)。在這種情況下,你的代碼不應該失敗;你可能需要一個向量時鐘來替換索引,或者修改你的語義。 – ninjagecko 2012-03-22 03:04:50
請注意,通常情況下,爲數據庫序列化對象是一個壞主意 - 它違背數據庫規範化原則,限制訪問數據的方式以及訪問數據的方式。你幾乎總是更適合將它存儲在數據庫中。 – 2012-03-22 03:06:31