2009-09-04 121 views
1

我有一種情況,我需要將數據存儲在本地(iphone),並且相同的數據將位於Web服務器中以供其他用戶訪問(例如發送消息)。核心數據或sqlite或plist文件

對於Web服務器的一部分,我不擔心,我創建了所有的表和關係。 但我擔心Iphone端數據存儲和正確同步雙方。

下面是我想要如何使用在兩側上的表(iphone和Web服務器)的示例

消息表:消息ID(與增量的主鍵),用戶ID C(12)和消息文本C(100) 我可以將用戶標識和消息文本發送到Web服務器(通過使用URL),並從Web服務器獲取消息標識的主鍵。

現在我的困境是填充每個表中的每個記錄(將是一個Integer)在iPhone端或在Web服務器數據庫中的每個記錄的唯一ID(主鍵)?

謝謝提前。 Sridhar

回答

1

你可能可以讓你的web服務器爲你的應用程序生成一個sqlite文件來下載?由於sqlite幾乎可用於任何事情,這可能是一個有用的優化;同步將是一個簡單的上傳/下載文件。

7

由於您無法控制CoreData中的內部鍵,並且因爲CoreData需要一個非常特定的模式才能工作,而且您不想直接混淆CoreData的SQL(它每個都有各種標誌行不是doc文檔),你需要在iPhone上的服務器上擁有不同的數據庫模式。

對於唯一的ID,您只需要將自己的列添加到CoreData中,並確保在其上引入索引。

如果您要在iPhone和Web服務器上生成新行,您需要使用一些方案來確保這兩個鍵在兩者上都是唯一的 - 最簡單的方法是使用UUID生成一個UUID CFUIIDCreate()和相關函數,並將其作爲字符串存儲在表中。

-Wil

+0

謝謝你的回覆,我沒有在Web服務器,使用一個自動增量列,然後得到Web服務器的舉世無雙ID和iphone核心數據列填充它。 – 2009-09-21 05:35:34