gpt4 book ai didi

mysql - 设计一个数据库来处理产品变化的库存跟踪

转载 作者:行者123 更新时间:2023-11-29 07:05:22 25 4
gpt4 key购买 nike

我正在为一个处理商店库存管理的项目设计一个数据库。

基本上,每个产品都可以有不同的颜色尺寸,显然,每个可能的产品(库存)数量变化会有所不同。

示例:

[
{
"product": "Plain T-Shirt",
"color": "Red",
"size": "Medium",
"stock": 10,
},
{
"product": "Plain T-Shirt",
"color": "Red",
"size": "Large",
"stock": 2,
},

]

这里,同一种产品(普通 T 恤)的不同款式有不同的库存。正如您可能想象的那样,我需要能够独立更新每只股票。

那么,设计这样一个数据库最有效的方法是什么?我使用的是 PostgreSQL,因此设计需要是关系型的,但我也可以访问 JSON 字段。

现在,我当前的设计看起来有点像这样:

产品

  • 名称(字符字段)
  • 数量(JSON 字段)

颜色

  • 名称(字符字段)
  • 产品(多对一关系的外键)

尺寸

  • 名称(字符字段)
  • 产品(多对一关系的外键)

颜色和尺寸可以由用户动态添加,因此系统必须对此进行补偿。

关于数量字段,假设产品 P1 的颜色为“红色”和“绿色”,尺寸为“S”和“M”。我正在尝试将数量字段设置为如下所示:所有可能组合的 4 个键:(红色,S),(红色,M),(绿色,S),(绿色,M),其值代表库存这些变化目前有库存。

所以,我的问题是:我走的路正确吗?这种设计有效吗?或者有更好的方法吗?谢谢。

最佳答案

我在您的设计中看到的问题是,对于每种颜色为“红色”的产品,您都会在颜色表中拥有“红色”记录。与尺寸相同。然后使用 JSON 定义数量会产生很多不一致的机会(例如,如果您从颜色表中删除颜色,然后忘记删除数量,则不是很“相关”)。

我将这样做:使用三元关系。 enter image description here

你的表格看起来像这样:

PRODUCTS(id,name,...)
COLORS(id,name,...)
SIZES(id,size_label,...)
STOCKS(id,product_id,color_id,size_id,quantity)

STOCKS 表表示三元关系。

通过这种方式,您可以将事物充分分开,并且可以更轻松地使用单个查询来跟踪您的库存。

关于mysql - 设计一个数据库来处理产品变化的库存跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41911659/

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