CoreData:链接到另一个的同一个项目的多个副本?

时间:2010-10-22 20:03:52

标签: iphone objective-c cocoa core-data

在Core Data中,有一种方法可以让一个对象实例与另一个对象有多个链接吗?通过示例可以最好地理解这一点。你有一个购物车对象,ShoppingCart,你有书,书。你如何正确地将同一本书的多个副本放入购物车?

无论您运行[shoppingCart addBooksObject:book];多少次,它都只会出现一次。

现在我在两者之间有多对多的连接,但由于shoppingCart.books是一个集合,它会删除重复项。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以使用适当的数据模型来解决这个问题。 : - )

这是典型的“订单项”问题。有产品,发票和订单项。在您的情况下,书是产品和购物车的发票。您没有将产品放入购物车,而是在购物车中放置了一个订单项(链接到产品)。

订单项属于购物车(每个商品一个)并保留数量属性(可能是基于数量的某些批量折扣计算的小计)。换句话说,您需要一个中间实体(可能是CartItem?)来保存关系和数量。