可包含可自定义产品(RDMS)的订单的数据库架构

时间:2012-02-18 23:13:25

标签: mysql sql database database-design database-schema

我来自前端背景,所以如果这个db问题看起来很愚蠢,我会道歉。

假设我有一个处理汽车和汽车配件订单的数据库。如果Car不可自定义,那么一切都很容易。对于每个订单,我们只需要将OrderIdCar的{​​{1}}相关联。但是ProductId是一个Car,可以包含一个或多个Product类似导航,座椅加热器等。用户还可以单独购买这些配件Product

我们应该如何处理这个问题?如果订单表中的每个Product用户订单都被赋予唯一的Product,并且ProductOrderId可以包含另一个Product,那么我们会将其放在一个表{ {1}}与Product

如果我们这样做,数据库是否会失控?对我来说似乎有点低效。我觉得有更好的方法。

1 个答案:

答案 0 :(得分:0)

如果您查看复杂产品的通常收费方式,主要项目及其每个选项都会被视为销售单中的单独订单项。在这种情况下,汽车是一种产品,其每个配件也是产品。您可以在product上建立一个复杂的关系,以指明哪种配件适用于哪种类型的汽车。

此方案的数据模型如下所示:

enter image description here

或者,您可能会想要一个抽象级别的场景,这样您的销售单只包含一个项目,即完全配置的汽车。这要求订单商品更像是物料清单中的标题,如下所示:

enter image description here