我的情况是我需要将数据存储在本地(iphone)中,并且相同的数据将存储在Web服务器中以供其他用户访问(如发送消息)。
对于Web服务器部分我并不担心,我创建了所有的表和关系。 但我担心Iphone侧数据存储并正确同步双方。
以下是我想如何在双方使用A表(iphone和web服务器)
的示例消息表包含:消息ID(带增量的主键),用户ID c(12)和消息文本C(100) 我可以将用户ID和消息文本发送到Web服务器(使用URL),并从Web服务器获取消息ID的主键。
现在我的困境是为每个表中的每个记录填充唯一ID(主键)(在整个情况下)是iphone端的天气还是在Web服务器数据库中?
先谢谢。 斯里达尔
答案 0 :(得分:7)
由于你无法控制CoreData中的内部密钥,并且因为CoreData需要一个非常特定的架构才能工作,并且你不想直接搞乱CoreData的SQL(每行都有各种标志)如果没有文档化的话,你会希望在iPhone上的服务器上拥有不同的数据库架构。
对于唯一ID,您只需要将自己的列添加到CoreData,并确保在其上添加索引。
如果您要在iPhone和Web服务器上生成新行,您将需要使用某种方案来确保密钥在两者上都是唯一的 - 最简单的方法是使用CFUIIDCreate生成UUID ()和相关函数,并将其作为字符串存储在表中。
-Wil
答案 1 :(得分:1)
您可以让您的网络服务器为您的应用下载生成sqlite文件吗?由于sqlite几乎适用于任何东西,这可能是一个有用的优化;同步可以是文件的简单上传/下载。