同步後,下次再同步又出現重覆資料

關於 記帳軟體-帳務小管家 E-Money 軟體的問題發表
建議或問題回報等

Re: 同步後,下次再同步又出現重覆資料

文章o慕雲o » 2013年 5月 26日, 21:34

剛剛我再思考了一下 [刪除] 的同步方式
但經思考後還是沒辦法作到
以下是我先用 [模擬] 方式來敘述處理的方式流程及原因
=======================================================================================================================
一.使用現有的欄位來進行刪除同步動作

1.手機 端沒有 帳務資料 [上移] 及 [下移] 功能,所以手機端的 MAKE_NO 值不會變(MAKE_NO 為 手機 端的記錄序值)
2.手機 端有 PC_MAKE_NO 值對應到 PC 端的 MAKE_NO2 欄位(MAKE_NO2 為 PC 端的 記錄序值)
3.PC 端有 MAKE_NO2 及 ANDROID_NO 欄位,MAKE_NO2 為 PC 端的固定序值不會變,PC 端的 ANDROID_NO 值為對應手機端的 MAKE_NO 值
4.如 PC 端資料刪除時可將原記錄複製一筆全部資料於 [刪除暫存區] 中,並於同步時判斷該刪除的資料是否有 ANDROID_NO 值來決定是否要刪除 手機 端的記錄(ANDROID_NO 若有值表示已同步到 手機 上過)
5.如 手機 端資料刪除時可將原記錄複製一筆全部資料於 [刪除暫存區] 中,並同時於 PC_MAKE_NO 判斷該筆資料是否有同步到 PC 端過(PC_MAKE_NO 若有值則表示已同步到 PC 上過)
6.由 [刪除暫存區] 的資料來處理二邊資料的刪除動作
7.執行完雙向同步後要把 PC 及 手機 端的 [刪除暫存區] 一併刪除

經以上動作後發現一個問題
1.假設於 PC 端新增一筆記錄並已同步到手機,此時 PC 端的 MAKE_NO2 值為 1 (PC 端的序值),手機端的 MAKE_NO 也為 1 (手機端的序值),PC 端所記錄的 ANDROID_NO 值也為 1 (PC 資料對應到手機的序值)
2.假設將 PC 端的該筆資料刪除,並且同時在 手機 端也刪除該筆記錄,此時 PC 跟 手機 的 [刪除暫存區] 都會有該筆要刪除的記錄
3.假設於 手機端 再新增一筆記錄,因此時手機端是沒有記錄的,所以手機端再建一筆的序值其 MAKE_NO 值還是為 1 (因剛剛的第一筆已被刪除)

所以...若於同步時先執行 [刪除] 的同步作業的話,會因 PC 端記錄著刪除手機端的 MAKE_NO 值為 1 的記錄(刪除暫存區)
造成後面第二次新增的 MAKE_NO 值為 1 的記錄就先被電腦刪除,而無法執行後面的同步到電腦的動作(第二筆新增的手機端記錄會先被刪除)

又若...若於同步時先執行 [新增] 的同步作業的話,會因手機端的 MAKE_NO 值為 1 的記錄先同步到電腦中(第二次新增的資料 MAKE_NO 值為 1)
但 手機 端的 [刪除暫存區] 也有記錄了一筆 刪除 PC_MAKE_NO 值為 1 的刪除記錄(剛剛在手機端刪除的記錄,因其對應到 PC 的 MAKE_NO 值是 1)
因而造成雖後面新增的資料已同步到 PC 端後(第二次在手機新增的記錄)又被後面的 [刪除記錄] 動作而再把剛剛同步到 PC 端的那筆記錄又給刪除了(因後面要執行刪除同步)
所以以上二種不管是 先處理 [新增] 或 先處理 [刪除] 部份都無法達到


二.新增 DATA_KEY 欄位來處理
DATA_KEY 的用意是於每筆記錄新增時都會產生類似 [身份證號] 的維一值
也就表示每一筆記錄都有自己的 DATA_KEY 值(這樣不管是刪除那一筆資料都不會互相干擾)
但用此方式來處理時會遇到一個問題
就是因 PC 與 手機 的資料庫是分開的
所以若於 PC 端新增一筆資料時其 DATA_KEY 值為 1
但若於 手機 端新增一筆資料時因無法取得 PC 端的 DATA_KEY 值已取到那邊,所以 手機 端無法接續產生 2 的值(還是會產生 1)
這樣就無法使用 DATA_KEY 來將二邊的資料分別隔離出獨立的 DATA_KEY 值(不重覆)

本想用 [系統日期] 或 [從 1970/01/01] 到今天所發生的 [秒數] 來產生 DATA_KEY 值
但若使用者在 PC 或 手機 端修改系統日期時則會影響該數字的取得而產生重覆的情況
=======================================================================================================================
頭像
o慕雲o
系統管理員
 
文章: 18353
註冊時間: 2011年 8月 13日, 22:05

上一頁

回到 【記帳軟體】帳務小管家 E-Money-軟體討論區

誰在線上

正在瀏覽這個版面的使用者:Bing [Bot] 和 17 位訪客