[問題] 同步"值"的問題

作者: erttyy8821 (俠)   2015-08-13 15:24:33
(更新描述
想問問版上的先進關於"值"同步的問題
遠端Server的DB A Table 有a,b,c三個欄位
在本地端的DB B Table 有 b,c 兩個欄位
彼此用http get透過JSON溝通
我想問有沒有保持DB裡面的b,c的"值"持續相同的方法
就是A可能新增,刪除,修改
我的本地端 get到server的值之後 要保持雙方資料一樣
目前有用過兩種方法
1.
下載完資料後
用兩個for迴圈來撈出本地和遠端的資料互相比較
如果本地有遠端沒有就砍掉,反之就新增,相同的話就看需不需要更新
2.
資料更新後有一個Timestamp去記錄
比對本地與遠端的Timestamp來決定要不要砍掉資料重寫
或者像1一樣開始比較
其實我想知道有沒有其他的做法
總覺得這樣不夠聰明
不然這樣做比對其實也可以解決問題
有Google過,但也不知道有什麼關鍵字查詢比較好
先謝謝各位
作者: ckvir (ckvir)   2015-08-13 16:28:00
git 可以吧
作者: erttyy8821 (俠)   2015-08-13 16:31:00
我是指java中的資料 不是指版本控管啦 哈
作者: ckvir (ckvir)   2015-08-13 16:34:00
你的db是什麼?
作者: erttyy8821 (俠)   2015-08-13 16:37:00
遠端server有database 本地端程式有database要同步彼此的資料內容透過API做資料的交換
作者: ckvir (ckvir)   2015-08-13 16:39:00
我是說 db 是用 mysql 還是你用文字檔,有很多種 db文字檔的確可用 git 同步,mysql 可以查 replication
作者: darrenlu (Rageek)   2015-08-13 16:50:00
還有需要考慮同步的頻率
作者: erttyy8821 (俠)   2015-08-13 17:19:00
主要是mqsql 感謝你我會去查頻率我有解決了 這點倒還好不過我其實傾向的還是演算法或者api/lib可以解決 哈類似json 有gson比較方便調用的方法因為我比較需要的是資料 而不是整個db 欄位可能不同
作者: luoqr (.....)   2015-08-13 19:20:00
要先問目的是什麼會決定用什麼策略解決這個問題 XD
作者: yyc1217 (somo)   2015-08-13 22:25:00
用timestamp要考慮兩邊時鐘準不準的問題
作者: erttyy8821 (俠)   2015-08-14 09:47:00
感謝提醒
作者: KekeMonster (KekeMonster)   2015-08-14 16:17:00
感覺你一次都會拿到一份完整的資料可考慮用 bulkload 到一個暫時資料表再 rename 取代?

Links booklink

Contact Us: admin [ a t ] ucptt.com