2014-02-01 2 views
0

Я планирую создать приложение для iOS с использованием Core Data, которое поможет моему клиенту управлять своей дизайнерской одеждой. Я думаю о структуре базы данных, и я немного смущен, потому что, я не знаю, будет ли моей структуры достаточно для запланированных операций с данными. Если это не очень важно для вас, пожалуйста, взгляните на мою модель даты базы данных, которую я создаю с помощью Xcode. Возможно, если я расскажу вам о моих запланированных запросах, вы бы поняли мою схему модели даты более легко.Основные данные данныхModel, iOS

Отношения:

1 продукта --- Категория (12:59) пример

{ 
name: "Black Modern Jacket" 
price: 200 
image: photo.png 
category : { 
      category_id : "1234", 
      name : "updated name" 
     } 
sizes:(id), 
history:(id) 
} 

2 Категория --- Размеры (один ко многим)

{ 
name: "Jackets" 
sizes : [ 
     { 
      australia : "XXL", 
      europe : "52/54", 
      japan : "XXL", 
      uk : "XXL", 
      usa : "XXL", 

     }, 
     { 
      australia : "XL", 
      europe : "50/52", 
      japan : "XL", 
      uk : "XL", 
      usa : "XL", 

     }  
     ] 
} 

Это один отношения, которые я хочу использовать для заполнения пользовательских UIPickerView при добавлении элементов packageItems, например, если продукт является типом куртки, я буду отображать размеры от XXL - XS. Если продукт является типом обуви, я буду отображать размеры, такие как 7.5, 8.0, 8.5, 9.0 и так далее.

3 Пакет --- PackageItem (один ко многим) «Пакет Н.Р. 12/2013 создан в 12.12.2013 имеет много packageItems

{ 
packageNumber: "12/2013" 
creationDate : 12/12/2013 
notes : @"additional notes" 
packageItems: [ 
     { 
      quantity : 12, 
      product : "Black Modern Jacket"(productId==1293) 
     sizes: [ 
     { 
      sizeName : "XXL", 
      quantity : 6, 
     }, 
     { 
      sizeName : "XL", 
      quantity : 2, 
     }, 
     { 
      sizeName : "L", 
      quantity : 7, 
     },   
     ] 
} 

}

4 PackageItem --- продукт (один к один)

5 PackageItem --- ItemSize (один ко многим)

{ 
product : "Black Modern Jacket"(productId==1293) 
package : "12/2013" (packageId) = 1213 
itemsizes: [ 
     { 
      sizeName : "XXL", 
      quantity : 6, 
     }, 
     { 
      sizeName : "XL", 
      quantity : 2, 
     }, 
     { 
      sizeName : "L", 
      quantity : 7, 
     },   
     ] 
} 

6 PackageItem --- Ите mHistory

{ 
product : "Black Modern Jacket"(productId==1293) 
package : "12/2013" (packageId) = 1213 
itemsizes: [ 
     { 
      sizeName : "XXL", 
      quantity : 6, 
     }, 
     { 
      sizeName : "XL", 
      quantity : 2, 
     }, 
     { 
      sizeName : "L", 
      quantity : 7, 
     },   
     ] 
} 

7 продукта --- Размер продукта (один ко многим)

{ 
name: "Black Modern Jacket" 
price: 200 
image: photo.png 
sizes : [ 
     { 
      sizeName : "XXL", 
      quantity : 6, 
     }, 
     { 
      sizeName : "XL", 
      quantity : 2, 
     }, 
     { 
      sizeName : "L", 
      quantity : 7, 
     }], 
category: (id) 
history:(id) 

} 

8 продукта --- История продукта (один ко многим)

{ 
name: "Black Modern Jacket" 
price: 200 
image: photo.png 
history : [ 
     { 
      dateOfChange: 12/12/2013, 
      purposeOfChange: "deliver to: (reseller name) in package nr. 12/2013" , 
      changedValue : "XXL - 1, XL - 5, L - 9, M - 3, S - 3 , XS- 0" 
     }], 
category: (id) 
sizes:(id) 

} 

список ниже показывает некоторые основные функции моего приложения

1 определить новый продукт, отредактировать продукт, удалить продукт, показывает наличие продукта в каждом дилерах журнале,

2 определяет новый реселлер магазин, редактировать посредник, удалять посредник, дисплея доступного количества размеров в реселлере журнале, редактировать количество размеров в реселлере журнале, показать историю продукт в реселлером журнале (изменено количество размеров, с указанием даты и цели этого изменения)

3 создать пакет, пакет редактирования, удаления пакета

Кроме того, я планирую использовать стек чернь Баас SOLUTIO n для хранения данных моего клиента

Пожалуйста, взгляните на мою датуModel, и если вы видите некоторые ошибки, просто дайте мне знать. Заранее спасибо.

My dataModel schema in Xcode

ответ

0

Вы знаете область домена, так что у вас лучшая способность судить. Для меня существует много дублирования в вашей модели данных (размер и продукт), но это может потребоваться для тонких различий.

Основная проблема, которую я вижу, - это уникальные идентификаторы, чтобы вы могли найти соответствующие объекты для обновления при получении изменений с сервера. Кажется, что ваши данные содержат некоторые идентификаторы, хотя и не во всех местах, которые я ожидал бы (это можно было бы просто исключить для краткости). И ваша модель данных, похоже, не хранит никаких идентификаторов.

Я бы сказал, что есть некоторые проблемы с множественностью. Может ли Category действительно иметь только 1 Product?

+0

Я согласен с Wain. В первый раз, когда я выскочил на меня, почему отношение категории к продукту 1-к-1? – auspicious99

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