gpt4 book ai didi

mysql - 如何在mysql数据库中创建多个相关表

转载 作者:行者123 更新时间:2023-11-29 20:38:13 26 4
gpt4 key购买 nike

我的标题可能并没有真正传达我想要实现的目标,我有一些相关的表,但我不知道如何创建这种关系以使存储和检索数据变得更加容易。以下是我能想到的。

color table
colorId(PK)
productId(FK)
colorName

size table
sizeId(PK)
productId(FK)
size


product table
productId(PK)
priceId(FK)
Qty
Name
Title

price table
priceId(PK)
productId(FK)

现在我的问题是我有不同品种的产品,例如男式蓝色阿迪达斯滑翔跑鞋,产品 ID 为 1,该产品有不同尺码和不同颜色,价格因尺码和颜色而异。例如,如果这双鞋颜色为蓝色,尺码 11 的售价为 50 美元,那么同一双尺码更大、颜色不同的鞋(例如尺码为 12 的红色)可能售价为 55 美元,同样这双鞋颜色为蓝色的可能只有尺码 11 可用这双尺码 12 的库存和颜色蓝色可能没有,我如何创建表格来保存颜色和尺码之间的所有差异以及价格。对此有任何帮助,谢谢

最佳答案

您可能不应该将每个属性都放在自己的表中,可能更好的方法是拥有一个产品表和一个变体表。这样,您就可以将价格、尺码、颜色、可用数量等全部显示在同一个表中,然后加入该产品,即男士蓝色 adidas Glide 跑鞋。您的变体表将如下所示:

| variant_id | product_id | price | colour_id | size_id | quantity_available | in_stock |
| 1 | 1 | 50.00 | 1 | 11 | 20 | 1 |
| 2 | 1 | 55.00 | 2 | 12 | 0 | 1 |

然后,您可以单独加载每个变体,并在每次销售时更新quantity_available。我还添加了一个 in_stock bool 值,以便您可以覆盖库存是否显示在您的网站上,而无需调整 quantity_available。然后,您将在 purchase 表中获得 variant_id,以便稍后加入这些表。另外,我喜欢在自己的表格上列出尺码和颜色,这样您就可以制定分类法来汇总他们所说的所有蓝色,或所有 XS、S、M、L、XL。

类似于:

| colour_id | name          | base_colour_id |
| 1 | Royal Blue | 3 |
| 2 | Spanish Blue | 3 |
| 3 | Blue | 3 |
| 4 | Ultramarine | 3 |
| 5 | Green | 5 |
| 6 | Mint Green | 5 |

通过这种方式,您可以添加更多独特的颜色变体,并且仍然报告基色或完整颜色名称。在这里你可以使用:SELECT * FROMvariant_colour a JOINvariant_colourbONb.colour_id = a.base_colour_id你会得到:

| colour_id | name          | base_colour_id | colour_id | name          | base_colour_id |
| 1 | Royal Blue | 3 | 3 | Blue | 3 |
| 2 | Spanish Blue | 3 | 3 | Blue | 3 |
| 3 | Blue | 3 | 3 | Blue | 3 |
| 4 | Ultramarine | 3 | 3 | Blue | 3 |
| 5 | Green | 5 | 5 | Green | 5 |
| 6 | Mint Green | 5 | 5 | Green | 5 |

同样的想法也可以用于尺寸等,这样您就不会最终得到数百个独特的属性变体,从而使您的信息无法报告。

关于mysql - 如何在mysql数据库中创建多个相关表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38701126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com