当前位置: 首页 > 面试题库 >

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

马弘和
2023-03-14
问题内容

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

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

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

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

我应该怎么做呢?

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

谢谢!


问题答案:

至少您需要:

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


 类似资料:
  • 我尝试了很多,但当我找不到解决方案时,我将第一个问题发布在这里: 我有四张桌子: 当然,一个客户只能在一个订单中订购一次产品 在一个查询中,我想返回每个customer\u id以及order\u id和product\u id,这些客户在多个订单中订购了任何产品。 换句话说,对于每个客户,我希望找到客户多次订购的不同产品(在单独的订单中),以及product\u id和order\u id。因此

  • 我们有一个在线商店,在三个表中存储产品详细信息: 产品(名称、描述、品牌)-总计10,000个条目 产品-变体(大小、价格、可用性)-总计80.000项 产品-属性(颜色)-总计60.000项 这给出了大约400.000项的总组合。 示例: 产品为“Nike Air Max” 变体是“尺寸36,70美元”、“尺寸37,72美元”、“尺寸38,74美元” 属性为“Color Red”和“Color

  • 问题内容: 我尝试将DECIMAL与(2,2)一起使用,但不允许我使用。 我只想存储一个数字,例如7.50或10.50。我需要将两个数字都保留在小数点后,但是当我刷新数据库时,它将值重置为0.99。有什么建议么? 问题答案: 声明的第一位数字是 总数 。您可能想要使用。这允许小数点前最多两位数,小数点后两位数。 文档:https : //dev.mysql.com/doc/refman/5.7/e

  • 问题内容: 我在MySQL中有两个表。表人具有以下列: 该列可以包含null或字符串数​​组,例如(’apple’,’orange’,’banana’)或(’strawberry’)等。第二个表是Table Fruit,具有以下三列: 那么,我应该如何设计第一个表中的列,以便它可以容纳从第二个表中的列获取值的字符串数组?由于MySQL中没有数组数据类型,该怎么办? 问题答案: 正确的方法是在查询中

  • 我在MySQL中有两个表。Table Person具有以下列: 水果列可以包含null或字符串数组,如('apple','orange','banana')或('草莓')等。第二个表是水果表,有以下三列: 那么,我应该如何设计第一个表中的水果列,以便它可以容纳从第二个表中的水果名称列获取值的字符串数组?既然MySQL中没有数组数据类型,我应该怎么做?

  • 我试图创建一个IF条件与product_id从order_id,当一个新的订单被放置。 我试着这样做: 但是每次当我想下订单时,WooCommerce都会给我错误消息“内部服务器错误”。 我试图使用这个答案的代码,但不知何故它不起作用:如何获得WooCommerce订单详细信息 什么东西在这里不起作用?非常感谢你的帮助。 顺致敬意, 托马斯