我有一个应用程序在服务器端和iOS客户端的数据库上工作。我使用HTTP服务在服务器端的SQL Server和iPhone上的Core Data之间进行同步。iPhone:如何通过外键管理核心数据关系
我有一些核心数据的对象是这样的:
ProductGroup
Attributes:
id
Relationships:
products
Product
Attributes:
id
productGroupId
Releationships:
productGroup
由于服务器的限制,我不能使用增量同步。当我同步我的数据时(例如),我必须删除所有ProductGroup对象,从服务器获取响应,然后创建新对象(以及一些旧对象)。
的问题是,如果我有一个productA
属于productGroupB
,平时我可以做productA.productGroup
,但我删除productGroupB
然后再创建一个具有相同内容之后,双方的关系将丢失。
所以我徘徊是否有任何方式来管理FK的关系,如.NET中的实体框架,所以我仍然可以在重新创建后在关系的另一端找到对象。
它是这样一个详细的答案。我今晚会尝试你的伪代码。我认为它应该工作,因为我从服务器上下载Product.id'。我确实收到来自服务器的类似CVS的数据。iPhone客户端上的增量同步从来没有出现在我的脑海中,因为我认为这是一个服务器端的工作。 Symbian和Android客户端上的程序员使用Symbian OS DBMS或Sqllite,他们在删除和重新创建时工作良好。 – 2011-06-02 01:47:54
我想我可以在iOS上创建自己的ORM框架,我个人喜欢M $的实体框架和LINQ,我想我会在某天将它们移植到iOS。 – 2011-06-02 01:51:02
不要让问题变得更加困难。对象图简化了很多在过程SQL等中更复杂的问题。根据从非对象服务器获取的数据添加和删除对象和关系是Core Data应用程序中非常常见的任务。我认为你的任务并不像你认为的那么困难。当他们开始使用对象图时,这对于熟练使用SQL和类似API的人来说很常见。 – TechZen 2011-06-03 03:32:44