【发布时间】:2016-06-22 12:39:18
【问题描述】:
此问题与Database Design: inventory and sales system?有关
例如一个汉堡是一个Product,它由Component面包、肉、奶酪、泡菜等组成。当这个汉堡出售时,可以通过添加/删除/修改组件来定制。
如何将此自定义项记为订单项?是否会有另一个表ProductCustomization 引用Product 和Component 以及指示定制类型的列?如果你想在Product 中修改Component 的Composition 怎么办(例如每个汉堡3 个泡菜)。
定制的一个例子是订购不含泡菜的汉堡,或者添加额外的奶酪。
【问题讨论】:
-
也许我遗漏了一些东西,但为什么 Product 和 Component 还不够呢?可定制的产品仍然是产品。在您的示例中,您有一个带有额外奶酪的产品汉堡。
-
是的,但是对于每个组件,都需要添加许多产品来考虑每个可能的定制。此外,例如,为了改变泡菜的数量而在产品中列出三个汉堡似乎也不切实际。
-
好的,您的汉堡产品将由 Product 表中的多行组成。每行包含一个产品 ID、组件 ID 和数量。您的组件表将包含组件 ID、组件名称(pickle)和构成组件的其他字段。
-
这会在订单项上作为全新产品出现吗?我还会考虑任何微小的定制吗?很容易错过一个,然后客户就无法按照他们想要的方式订购汉堡。
标签: database-design