我正在爲正在開發的iPad應用程序設置基本同步服務。目標是讓數據在iPad應用程序的多個實例中保持一致,並在Web上擁有隻讀版本的數據,從而實現自定義解決方案。核心數據同步 - 跟蹤已刪除的對象
的電流流動是這樣的:
- 每個實體具有「創建」,「修改」和「UUID」字段被自動核心數據
- 同步功能,與創建的每個實體更新或上次同步日期後的修改日期被序列化爲JSON併發送到服務器
- 服務器使用客戶端生成的UUID作爲PK保留對MySQL數據庫的任何更改(如果存在衝突,則只使用最近修改的實體作爲'真實'版本,沒有什麼特別),並將任何更新的實體發送回客戶端
- 客戶端然後合併這些更改回其核心數據DB
這一切似乎是工作的罰款。我的問題是如何使用此方法跟蹤已刪除的對象?我猜測我可以爲每個實體添加一個'已刪除'標誌,並在客戶端刪除某些內容時設置此標誌,然後我可以使用其他同步數據將該更改推送到服務器。一旦同步完成,客戶端實際上可以刪除這些實體。我的問題是:
- 我可以覆蓋核心數據的刪除方法來自動設置此標誌嗎?
- 這是否需要在服務器上無限期地保留所有被刪除的實體?我們無法知道每個客戶端何時同步並實際刪除了每個實體(我目前沒有跟蹤客戶端實例)
- 有沒有更好的方法來做到這一點?
非常感謝這一點。我已經採用了一種混合方法,就像我在問題中所描述的那樣進行同步,但現在還維護着一個已刪除對象的表格。我將期待在未來完全轉向三角洲系統。 – NathanGaskin