iphone核心数据模型
我不熟悉核心数据。我正在努力理解如何为这个应用程序设计数据模型 我必须为书籍建立一个数据库iphone核心数据模型,iphone,database-design,core-data,Iphone,Database Design,Core Data,我不熟悉核心数据。我正在努力理解如何为这个应用程序设计数据模型 我必须为书籍建立一个数据库 Books have the following characteristics: .englishName .italianName .frenchName .spanishName .number 书籍可以有两种:免费或非免费。 书籍可以单独出售,也可以捆绑出售。 一个包可以代表一堆书。 一本书可以是一捆或多捆 我需要的是: 标记为付费的能力 捆绑或/和书本 能够检索所有非自由或所有自由 书,所有的
Books have the following characteristics:
.englishName
.italianName
.frenchName
.spanishName
.number
书籍可以有两种:免费或非免费。
书籍可以单独出售,也可以捆绑出售。
一个包可以代表一堆书。
一本书可以是一捆或多捆
我需要的是:
Bundle
.Number
.Paid
-relation to product (fromBundle) to-many
Product
.nameEN
.nameIT
.nameFR
.nameSP
.Number
-fromBundle (relation to Bundle) to-many
-fromType (relation to Type)
Type
.kind
-relation to Product... to-many
但我不确定这不是正确的方法,因为无法用所有4种语言定义捆绑包名称,如果我将这些属性添加到捆绑包中,我将以大量冗余结束
请帮帮我!谢谢。通过介绍产品和类型,您可能会使这一点变得过于复杂-您真正需要的只是书籍和捆绑包实体,它们之间存在多对多关系。然后,要处理您介绍的用例:
- 要检索所有非免费或所有免费图书,只需将
属性设置为适当值的图书实体实例(或免费
值为零或非零,具体取决于存储此属性的方式)价格
- 要从给定的捆绑包中检索所有书籍,只需调用
——多对多关系直接提供了这一点[bundle books]
- 要检索所有购买的图书,只需查找标有
付费的图书
这样,您就可以将四个名称属性保留在书本身上,而不用担心它们(除非您必须命名包,但这些包无论如何都应该是不同的名称)。此外,它在概念上很简单—您不必担心产品或语义的确切构成方式。通过引入产品和类型,您可能会使其过于复杂—您真正需要的只是书籍和捆绑包实体,它们之间有多对多的关系。然后,要处理您介绍的用例:
- 要检索所有非免费或所有免费图书,只需将
属性设置为适当值的图书实体实例(或免费
值为零或非零,具体取决于存储此属性的方式)价格
- 要从给定的捆绑包中检索所有书籍,只需调用
——多对多关系直接提供了这一点[bundle books]
- 要检索所有购买的图书,只需查找标有
付费的图书
这样,您就可以将四个名称属性保留在书本身上,而不用担心它们(除非您必须命名包,但这些包无论如何都应该是不同的名称)。此外,它在概念上很简单——您不必担心产品的确切构成或这种方式的语义。但这就是问题所在。如果我有捆绑包和书籍,每个捆绑包和书籍都必须具有相同的2个属性(价格和付费),因为用户可以购买其中一个或另一个,例如,如果购买了一个捆绑包,我以付费方式支付捆绑包,我不确定如何知道是否购买了上述书籍,除非我在购买捆绑包后将书籍标记为已购买。保持这样的工作状态并不能让我相信这是一条正确的道路。请记住,书籍和书包的价格不同,在我的头脑中,它们是不同的东西。如果你仍然看到我在使事情复杂化,我感谢你。。。。。。(继续)。。。可以更具体地说明它应该如何设计。。。谢谢(继续)。。。啊,再澄清一点。产品和捆绑包有相同的数字系统,我的意思是,想象一下五本书:第1、2、3、4和5本。现在想象数字6是一个包,它等于书1,2和3。。。7是一个由第3册和第4册组成的包。我这样想是因为如果我用不同的系统对bundle和book进行编号,当用户点击它们都列出的表视图时,我必须检查该索引是否是bundle的book。如果两者都有相同的编号,我只需将编号转发给实体,它会告诉我它是什么。我在设计中保留图书的
paid
属性的原因是(我想)你可以在捆绑之外购买一本书,甚至可以单独购买捆绑中的所有书籍,而不必购买捆绑本身。因此,是的,如果你标记一个bundlepaid
,你也应该标记它的所有书籍paid
。如果我有捆绑包和书籍,每个捆绑包和书籍都必须具有相同的2个属性(价格和付费),因为用户可以购买其中一个或另一个,例如,如果购买了一个捆绑包,我以付费方式支付捆绑包,我不确定如何知道是否购买了上述书籍,除非我在购买捆绑包后将书籍标记为已购买。保持这样的工作状态并不能让我相信这是一条正确的道路。请记住,书籍和书包的价格不同,在我的头脑中,它们是不同的东西。如果你仍然看到我在使事情复杂化,我感谢你。。。。。。(继续)。。。可以更具体地说明它应该如何设计。。。谢谢(继续)。。。啊,再澄清一点。产品和捆绑包有相同的数字系统,我的意思是,想象一下五本书:第1、2、3、4和5本。现在想象数字6是一个包,它等于书1,2和3。。。7是一个由第3册和第4册组成的包。我想象这个