2012-12-14 140 views
1

我正在嘗試爲以下方案准備最佳可能的設計。核心數據對多關係

分類 - >產品目錄 - >產品詳情

因此,在產品細節屏幕用戶有一個選項可以將產品添加到他的車。所以,無論何時用戶打開購物車,他都可以在購物車控制器下看到他所有的產品。用戶可以再次從購物車中查看產品詳情屏幕。

我的問題是如何最好地準備購物車數據庫?維護單獨的購物車實體是最好的解決方案?或者我可以在產品實體中擁有一個bool值。但保持布爾我認爲不是一個最好的解決方案。例如,如果我有10,000個產品,那麼只需要購買購物車物品,我必須遍歷整個產品。

我認爲最好的辦法是保持獨立的購物車實體並將product_id保存在其中。那麼,您能否告訴我應該與Cart &產品有什麼樣的關係?因爲購物車不能獨立我猜?

+1

你的模式對我來說看起來很好。您只需將購物車中的其他關係添加到產品實體即可。沒有理由以某種方式保持它的獨立性。 –

+0

您不能只將問題編輯到一行點。這是破壞行爲。我已經回滾了編輯。 – jrturton

回答

2

您可能需要從購物車到產品的多對多關係;也許稱爲「內容」或什麼?

如果用戶一次只有一個購物車,您也可以使用Product中的布爾值;如果您將該布爾值標記爲「索引」,則將其設置爲YES的所有產品的取值並不是很高。 (如果你使用的是SQLite後端)

+0

我更喜歡你的第一個解決方案:)...以及購物車中的屬性如何?我必須將productId存儲在購物車中? – Tariq

+1

您不存儲ID。這些都是由核心數據關係爲您處理的。存儲實體ID是一種反模式。 –

+1

是的,正好;只需建立從卡片到產品的關係,就像您從類別到產品一樣。 (除了多對多而不是多對一)。 –