为什么订单 - 产品关系有很多?

时间:2016-03-28 03:23:00

标签: database many-to-many

在数据库设计中,一个订单可以有多个产品,这没问题。但是一个产品总是只能在一个订单中,不是吗?例如,如何将相同的iPhone放在两个不同的订单中?

我认为它应该是一对多关系,而不是多对多关系。逻辑有什么问题?

3 个答案:

答案 0 :(得分:2)

假设您是一家电子商务公司,库存有70000个IPh。

根据您建议的设计,在“Product”数据库表中,您将存储70000行(每个IPhone为1行)。这样每个“订单”都会引用一个独特的IPhone。您是否看到数据库爆炸的速度有多快?

您应该做的是将iPhone的一般特征(名称,价格,品牌等)存储在表格的一行中,并使用名为“库存”的列来跟踪库存数量/ p>

下面的内容(请注意,您可以在下面进一步改进此设计,但这足以理解这里的多对多逻辑)

Product
-------------
id | name   | brand | price | inventory
1  | IPhone | Apple | 600   | 70000

现在,对于每个包含IPhone的订单,订单将引用product表的同一行。因此,1个产品将有多个订单。

如果您需要进一步澄清,请与我们联系。干杯!

答案 1 :(得分:0)

产品 - 订购多对多关系意味着您可以在一个订单中订购许多产品,例如你可以一次购买很多产品,卖家会给你一张收据(一个订单)。而相反的部位是一种产品类型可以多次密封,例如商店订购(进口)iPhone并密封它。事实证明,同一产品有很多订单。 有关更多信息,请查看维基百科中的Many-to-many (data model)

希望我帮助过你!

答案 2 :(得分:0)

答案是一个订单可以有很多产品,而且一个产品可以属于许多订单 举个例子: 您可以从电子商务网站订购许多书籍,任何书籍都可以订购多次

相关问题