小编典典

如何在MySQL中存储复杂的产品/订单数据?

sql

我正在为我的网上商店订购系统。我有2张桌子:

  1. 产品,存储有关产品的信息
  2. 订单,存储客户订单的一般ID和信息。

现在,我想拥有一种将复杂的客户订单存储在数据库中的方法。我需要一些东西让我知道订单中每种产品的大小(S,M或L)有多少。

棘手的部分是我希望能够添加/编辑/删除产品(当然不影响过去的订单),因此该方法应该灵活

我应该怎么做呢?

  1. 每个订单都有一个单独的表格,产品作为行?
  2. 所有订单一张桌子,产品列?
  3. 其他选择?

谢谢!


阅读 161

收藏
2021-04-14

共1个答案

小编典典

至少您需要:

Products (one row per product)
    ProductID
    Size

Orders (one row per order)
    OrderID

OrderDetails (one row per product per order)
    ProductID
    OrderID
    Size

请注意,每个“大小”都是其自己的ProductID。您可能需要另一个ID来将相同“基本”产品但尺寸不同的产品分组。

因此,如果订单1具有三个产品,订单2具有四个产品,OrderDetails则将有7行:

OrderID ProductID Quantity
1       234       2
1       345       9
1       456       30
2       432       1
2       234       65
2       654       8
2       987       4
2021-04-14