2012-12-14 141 views
1

我正在尝试为以下方案准备最佳可能的设计。核心数据对多关系

分类 - >产品目录 - >产品详情

因此,在产品细节屏幕用户有一个选项可以将产品添加到他的车。所以,无论何时用户打开购物车,他都可以在购物车控制器下看到他所有的产品。用户可以再次从购物车中查看产品详情屏幕。

我的问题是如何最好地准备购物车数据库?维护单独的购物车实体是最好的解决方案?或者我可以在产品实体中拥有一个bool值。但保持布尔我认为不是一个最好的解决方案。例如,如果我有10,000个产品,那么只需要购买购物车物品,我必须遍历整个产品。

我认为最好的办法是保持独立的购物车实体并将product_id保存在其中。那么,您能否告诉我应该与Cart &产品有什么样的关系?因为购物车不能独立我猜?

+1

你的模式对我来说看起来很好。您只需将购物车中的其他关系添加到产品实体即可。没有理由以某种方式保持它的独立性。 –

+0

您不能只将问题编辑到一行点。这是破坏行为。我已经回滚了编辑。 – jrturton

回答

2

您可能需要从购物车到产品的多对多关系;也许称为“内容”或什么?

如果用户一次只有一个购物车,您也可以使用Product中的布尔值;如果您将该布尔值标记为“索引”,则将其设置为YES的所有产品的取值并不是很高。 (如果你使用的是SQLite后端)

+0

我更喜欢你的第一个解决方案:)...以及购物车中的属性如何?我必须将productId存储在购物车中? – Tariq

+1

您不存储ID。这些都是由核心数据关系为您处理的。存储实体ID是一种反模式。 –

+1

是的,正好;只需建立从卡片到产品的关系,就像您从类别到产品一样。 (除了多对多而不是多对一)。 –