2014-01-25 4 views
0

У меня есть облачное приложение, которое использует pureply на SQL на серверных серверах. Теперь я хочу создать другое приложение, которое вместо этого использует данные ядра, чтобы сначала сохранить данные в ipad, и всякий раз, когда у пользователя есть доступ к Интернету для автоматической сопоставления моих основных данных с сервером.Настройка отношения основных данных для заказа приложения

У меня возникли проблемы с переносом таблиц базы данных на мои основные объекты данных.

  1. У меня есть products таблицу, которая будет хранить продукт, который имеет свойство, такое как name, price, product id
  2. У меня есть orderLines таблицу whicb будет хранить отдельные элементы из конкретного order со следующими свойствами, product , orderline_quantityOrdered, orderLine_totalPriceAtCheckOut, OrderId. Идентификатор заказа используется для отслеживания того, к какому заказу относится строка заказа.
  3. Тогда мы имеем orders таблицу, которая хранит только информацию о покупке, как так customer_id, OrderId - используемый orderlines таблицы, чтобы сделать отношения, datePurchased, totalOrderAmount.

Теперь, прежде чем реализовать это в coreData, я понимаю, что мне не нужно создавать идентификаторы первичного ключа, поскольку Core Data уже имеет свой собственный способ идентификации строк со своим собственным атрибутом id, который он реализует для каждого создаваемого объекта.

Но как бы я сформировал отношения из таблицы order в orderlines с 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 не будет использовать его в качестве основного или внешнего ключа, вы все равно захотите сохранить его для синхронизации.

Во-вторых, вы определяете отношения в Core Data, двунаправленные, как один-ко-многим в редакторе моделей. Затем в коде вы создаете объект заказа, создаете свою OrderLine (особые имена сущностей рекомендуются/стандартные), а затем помещайте экземпляры orderLine в набор и передавайте, которые установлены в объект заказа.

Какая часть этого не знакома вам, и я уточню свой ответ более подробно.

Смежные вопросы