Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 可包含可自定义产品(RDMS)的订单的数据库架构_Mysql_Sql_Database_Database Design_Database Schema - Fatal编程技术网

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

Mysql 可包含可自定义产品(RDMS)的订单的数据库架构,mysql,sql,database,database-design,database-schema,Mysql,Sql,Database,Database Design,Database Schema,我来自前端背景,所以如果这个db问题看起来很愚蠢,我道歉 假设我有一个数据库处理汽车和汽车配件的订单。如果Car是不可定制的,那么一切都很简单。对于每个订单,我们只需将OrderId与Car的ProductId关联即可。但是汽车是一种产品,可以包含一个或多个产品,如导航、座椅加热器等,用户也可以单独购买这些配件产品 我们应该如何最好地处理这个问题?如果每个产品用户订单在订单表中都有一个唯一的ProductOrderId,并且如果该产品可以包含另一个产品,那么我们将其放入一个表中,该表将Produ

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

假设我有一个数据库处理汽车和汽车配件的订单。如果
Car
是不可定制的,那么一切都很简单。对于每个订单,我们只需将
OrderId
Car
ProductId
关联即可。但是
汽车
是一种
产品
,可以包含一个或多个
产品
,如导航、座椅加热器等,用户也可以单独购买这些配件
产品

我们应该如何最好地处理这个问题?如果每个
产品
用户订单在订单表中都有一个唯一的
ProductOrderId
,并且如果该
产品
可以包含另一个
产品
,那么我们将其放入一个表中,该表将
ProductOrderId
ProductId
关联


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

如果你看看复杂的产品通常是如何计费的,主要项目及其每个选项在销售清单中被视为单独的行项目。在这种情况下,汽车是一种产品,它的每个附件也是产品。您可以在
产品
上建立一个渐开线关系,以指示哪些附件与哪种类型的汽车相匹配

此场景的数据模型如下所示:

或者,您可以有一个场景,其中您需要一个抽象级别,以便您的销售清单只包含一个项目,即一辆完全附加的汽车。这要求订单项更像物料清单中的标题,如下所示: