2014-01-12 151 views
1

在我的電子商務應用程序(咖啡廳/餐廳)中,我目前有以下數據庫結構。關係數據庫設計(電子商務) - 核心數據

enter image description here

車是購物車,您可以在其中的產品之前添加的產品,一個臨時的地方/訂單被髮送到服務器。 ProductCart是一個訂單項,許多產品(可能是相同的),具有不同的數量,尺寸,油炸水平等。當訂單被髮送時,購物車被清除並且購物車中的產品被轉移到實體(一個Order)。

我現在想要進一步擴展這個產品的成分能力,這就是我的頭腦和數據庫技能棘手和複雜的地方:-)。除了(相同)產品可以具有不同的尺寸和油炸級別(因此行項目),產品應該具有許多不同的成分(添加物)的能力,例如比薩餅,在那裏你可以選擇頂部。這是我到目前爲止已經試過:

enter image description here

但我不知道這是否是正確的結構或方式做到這一點?

回答

1

這是我的建議。

刪除ProductOrderOrder實體。它們與ProductCartCart相同。

現在ProductCart應該有一個像​​10基於它是否已發送到服務器還是不說爲一個屬性。

通過這個,你應該簡化很多你的模型。關於Ingredient…實體他們似乎對我好。

+0

我會在下次提交之前重新加載頁面;-) –

+0

@DanShelly沒問題。你可以留下你的回覆。這對我來說不是問題。 –

+0

謝謝您的回覆,我真的很感激。 – 7c9d6b001a87e497d6b96fbd4c6fdf

1

有一些基本的東西你沒有掌握的核心數據。你的ProductOrder實體本質上是一個連接表。如果您沒有跟蹤此表中的其他屬性,則這是完全不必要的。

相反,您應該有OrderProduct之間的多對多關係。

看起來ProductCart滿足我的條件,在這種情況下,連接表是有意義的。但是,不 - 您應該簡單地將訂單添加到您的購物車,並跟蹤Order實體中的所有信息。

+0

我同意你的回答,但在這種情況下,這些實體沒有用,因爲可以通過布爾值進行摺疊。無論如何,這是我的個人建議。 –

+0

如果認爲必要或方便,我的答案可能包括您的或任何其他布爾值。 – Mundi