我来自前端背景,所以如果这个db问题看起来很愚蠢,我会道歉。
假设我有一个处理汽车和汽车配件订单的数据库。如果Car
不可自定义,那么一切都很容易。对于每个订单,我们只需要将OrderId
与Car
的{{1}}相关联。但是ProductId
是一个Car
,可以包含一个或多个Product
类似导航,座椅加热器等。用户还可以单独购买这些配件Product
。
我们应该如何处理这个问题?如果订单表中的每个Product
用户订单都被赋予唯一的Product
,并且ProductOrderId
可以包含另一个Product
,那么我们会将其放在一个表{ {1}}与Product
?
如果我们这样做,数据库是否会失控?对我来说似乎有点低效。我觉得有更好的方法。
答案 0 :(得分:0)
如果您查看复杂产品的通常收费方式,主要项目及其每个选项都会被视为销售单中的单独订单项。在这种情况下,汽车是一种产品,其每个配件也是产品。您可以在product
上建立一个复杂的关系,以指明哪种配件适用于哪种类型的汽车。
此方案的数据模型如下所示:
或者,您可能会想要一个抽象级别的场景,这样您的销售单只包含一个项目,即完全配置的汽车。这要求订单商品更像是物料清单中的标题,如下所示: