2014-01-25 49 views
0

我有一个云应用程序,纯粹依赖后端服务器上的SQL。我现在希望创建另一个应用程序,它首先使用核心数据将数据保存在ipad中,并且每当用户访问互联网时都会自动将我的核心数据映射到服务器。设置核心订购应用程序的数据关系

我在将数据库表移植到我的核心数据实体时遇到问题。

  1. 我有一个products表将存储产品具有性能如namepriceproduct id
  2. 我有一个orderLines表whicb将单个项目从特定order存储具有以下属性,productorderline_quantityOrdered,orderLine_totalPriceAtCheckOut,OrderId。订单ID用于跟踪订单行与哪个订单相关联。
  3. 然后我们有orders表用于存储有关购买像这样customer_idOrderId只是信息 - 使用的orderlines表作出的关系,datePurchasedtotalOrderAmount

现在,这对实现之前coreData我明白,我不需要创建主键ID的,因为核心数据已经拥有自己的识别与它自己的ID行方式的属性,它实现了我创建的每个实体。

但我怎样才能形成从orderorderlines表与OrderId的关系。它将有一个one to many relationship这就是我如何连接这两个。

//Example of orders table in the backend database 
OrderId = 1, purchasedate, customer, orderTotalAmount 
OrderId = 3, purchasedate, customer, orderTotalAmount 
OrderId = 5, purchasedate, customer, orderTotalAmount 

//Example of orderlines table in the backend databaset 
oL_Id = 1, OrderId = 1, productNameAtTimeOfPurchase, productPriceATOP, quantity, subTotal 
oL_Id = 2, OrderId = 1, productNameAtTimeOfPurhchase, productPriceATOP, quantity, subTotal 
oL_Id = 3, OrderId = 1, productNameAtTimeOfPurchase, productPriceATOP, quantity, subTotal 
oL_Id = 4, OrderId = 3, productNameAtTimeOfPurchase, productPriceATOP, quantity, subTotal 
oL_Id = 7, OrderId = 3, productNameAtTimeOfPurchase, productPriceATOP, quantity, subTotal 
oL_Id = 8, OrderId = 3, productNameAtTimeOfPurchase, productPriceATOP, quantity, subTotal 
oL_Id = 10, OrderId = 5, productNameAtTimeOfPurchase, productPriceATOP, quantity, subTotal 

我明白CoreData不ORM,那很好,但如果有人能指导我设立这个核心数据实体,那么这将是巨大的。 我不是初学者,在其他项目中我已经处理过Core Data,现在我需要在界面构建器中的实体编辑中实现一个关系。谢谢

回答

1

首先,您将为存储在服务器上的每个属性创建一个属性。即使Core Data不会将其用作主键或外键,您仍然希望保留这些用于同步的内容。

其次,您在模型编辑器中将双向核心数据中的关系定义为一对多关系。然后在代码中创建一个订单对象,创建您的订单行(建议使用单数实体名称/标准),然后将您的订单行实例放入一个集合中,并将该集合传递给订单对象。

哪一部分对您而言并不熟悉,我将更新我的答案并提供更多详细信息。