0

我计划使用 Core Data 为 iOS 创建一个应用程序,这将帮助我的客户管理他们设计的衣服。我正在考虑数据库结构,我有点困惑,因为我不知道我的结构是否足以满足计划中的数据操作。如果对您来说没什么大不了的,请查看我使用 Xcode 创建的数据库日期模型。也许如果我告诉你我计划的查询,你会更容易理解我的日期模型模式。

关系:

1 产品 --- 类别(一对一)示例

{
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",

         }       
        ]
}

我想在添加 packageItems 期间使用这个关系来填充自定义 UIPickerViews,例如,如果产品是一种夹克,我将显示 XXL - XS 的尺寸。如果产品是一种鞋子,我会显示 7.5、8.0、8.5、9.0 等尺寸。

3 包 --- PackageItem(一对多)“在 2013 年 12 月 12 日创建的包 nr 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 --- ItemHistory

 {
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 创建包、编辑包、删除包

此外,我计划使用堆栈暴民 baas解决方案来存储我客户的数据

请查看我的 dateModel,如果您发现一些错误,请告诉我。提前致谢。

我在 Xcode 中的 dataModel 架构

4

1 回答 1

0

你知道领域领域,所以你有最好的判断能力。对我来说,您的数据模型(大小和产品)有很多重复,但可能需要细微的差异。

我看到的主要问题是唯一标识符,以便您在收到来自服务器的更改时可以找到要更新的适当对象。您的数据似乎包含一些标识符,尽管并非在我所期望的所有地方(为简洁起见,这可能已被省略)。而且您的数据模型似乎没有存储任何标识符。

我想说也有一些多样性问题。aCategory真的只有 1Product吗?

于 2014-02-01T09:22:20.017 回答