2014-01-30 123 views
2

我有一個很多用戶的數據庫,我想要在本地和我的服務器上存儲。每當用戶更新任何信息時,我使用核心數據庫在本地數據庫中成功更新它。但如何將這些信息改變成服務器?我沒有得到這個請幫助? 每次用戶更新他的信息時,我都會考慮sqlite文件到服務器。但如何發送數據的sqlite文件到服務器?發送本地sqlite文件到服務器

+0

您是否使用任何Web服務? – Ajay

+0

當數據在服務器上時,它是否需要訪問/更新數據庫,或者這只是一個僅用於iOS應用程序的備份副本? (如果是CoreData,我假設後者)。 – trojanfoe

+0

我只想轉移更新,而不是整個sqlite文件。 – ophychius

回答

1

向最近一次更新的本地數據庫添加一列。 (我認爲可能有辦法讓SQLite爲你自動半自動填充,但即使是「手動」也沒有什麼大不了)。然後,當你想上傳更新時,查詢自上次更新以來的行上傳。以JSON記錄的形式發送到服務器。

您還可以保留一個跟蹤更新的單獨表格,但這是更復雜的情況。

2

你必須使用一些策略。這是對這項工作的簡短解釋。

1)數據庫結構

2)Web服務

你必須在本地和服務器端數據庫的設計和管理標誌(布爾)和更新的時間。

1)就像當你啓動應用程序,然後你必須檢查你的本地數據,並採取最後更新日期和發送請求到服務器這個日期後有什麼新的更新。如果有更新,那麼你可以發送數據作爲該web服務的結果,並在本地設備處理該響應。

2)當您在本地設備上進行一些更改時,您必須管理標誌,更新時間和創建日期。國旗將顯示它已在服務器上更新或不。如果更新,則Y否則爲N.並且您必須發送創建日期和更新日期。

在此請求期間,您必須在同一時區進行管理。您可以使用標準的UTC時區,因爲用戶可能會切換到不同的時區以處理此問題。

如果你需要更多的澄清,那麼你可以問我們的聊天室http://chat.stackoverflow.com/rooms/43424/coders-diary

這種做法無疑爲你工作。

+0

@是的,我認爲這是一個更好的方法,發送更新的字段,而不是整個sqlite文件。假設如果用戶更改了他的密碼,那麼我將如何將更新的密碼發送到服務器。你能告訴我這個代碼片段嗎?如何檢查數據已收到服務器?有沒有任何委託方法被調用? –

+0

不,沒有委託方法。您必須開發一些自定義代理來執行此操作。有關我提供給我的聊天網址的更多信息。 –

相關問題