2012-02-18 50 views
1

我來自前端背景,所以我很抱歉如果這個數據庫問題看起來很愚蠢。可包含可定製產品(RDMS)的訂單的數據庫模式

說我有一個數據庫,處理汽車和汽車配件的訂單。如果Car是不可定製的,那麼一切都很容易。對於每個訂單,我們只需將OrderIdCarProductId相關聯即可。但是CarProduct,它可以包含一個或多個Product,如導航,座椅加熱器等。用戶也可以單獨購買這些配件Product

我們應該如何處理這個最好的?是否每個Product a用戶訂單在訂單表中都有唯一的ProductOrderId,如果Product可以包含另一個Product,那麼我們把它放在一個與ProductOrderIdProductId關聯的表中。

如果我們這樣做,db會失控嗎?對我來說似乎有點低效。我有一種感覺,有更好的方法。

回答

0

如果你看看通常收費的產品有多複雜,主要項目及其每個選項在銷售清單中被視爲單獨的項目。在這種情況下,汽車是一種產品,其每個配件也是產品。您可以通過product瞭解哪種配件適用於哪種類型的汽車。

對於這種情況,您的數據模型將是這個樣子:

enter image description here

或者,你可以有你想要的抽象水平的場景,使得你的銷售清單中只包含一個項目,是一輛完全裝配的汽車。這要求訂單項目變得更像材料清單中的標題,如下所示:

enter image description here

相關問題