核心数据结构是否使用多个实体?

Wil*_*con 2 xcode core-data

我有一个核心数据模型,我试图弄清楚如何构建它.

可以说我有一个Recipe.它有一个name,title,image和5种成分.

我会用recipeName,制作食谱实体吗title?然后是一个Image实体recipeName,imageURL.

然后,一个Ingredient与实体recipename,ingresient1,ingredient1measurwment,ingredient2,等...

或者我会在配方实体下完成所有操作(但是如果理论上我创建了含有100种成分的配方,会发生什么?

另外,我使用recipeName是因为我认为你是如何将它们联系起来的?

Lor*_*o B 17

根据您的问题,我会创建两个不同的实体.

Recipe,Ingredient

与... Recipe有多对多关系的地方Ingredient.

因此,Recipe将具有一些属性(您需要的属性)和一个简单的关系,例如toIngredients.toIngredients是一种多对多的关系.换句话说,配方可以有零(或者如果你想要的话)成分.

以同样的方式,Ingredient有一些属性.另外,它有一个到一个(反向)关系调用toRecipeRecipe.在这里你可以决定如果你的食谱可以分享成分,但它严格取决于你想要建模的东西.

关于关系规则,toIngredients有一个级联规则.当您删除配方时,其所有成分也将被删除.相反,toRecipe将是nullify类型.

这是一个简单的架构.

在此输入图像描述

其中toIngredients设置如下:

在此输入图像描述

toRecipe是:

在此输入图像描述

请注意,未选中可选标志toRecipe.这意味着只有配方存在时才能存在配料.如果您不遵守此规则,Core Data会抱怨此问题.

关于图像,它取决于图像的大小.按照Marcus Zarra的规则决定如何设计模型核心数据 - 存储图像(iPhone).