mysql管理产品大小的最佳方式

时间:2012-10-03 13:55:45

标签: mysql database inventory stock

我正在开发产品数据库,对于尺寸我创建了一个单独的表PRODUCT_SIZE(id,sizetext)

e.g。 (1,'小'),(2,'大'),(3,'超大'),......

我提供了这些尺寸列表作为复选框,添加产品时,可以针对当前产品选择所有可能的尺寸。

e.g。选择T恤,小号和大号。

这两个尺寸可用于每个新购买的股票。 现在我知道,可以有不同大小的单位,有些项目可以是英寸,有些是公斤,有些是米。

我有一个改变的解决方案: 改变表格

PRODUCT_SIZE(id,sizetext, UNitType);

现在它可以是:(1,'5','KG'),(2,'10','KG'),(3,'2.5'。'英寸'),......

还有更好的建议吗?

3 个答案:

答案 0 :(得分:4)

您似乎正在将“衣服尺寸”,“重量”和“长度”强加为一个“尺寸”属性。

试试这些表:

  product (product_id, name)
    "Nike t-shirt"

  attribute_group (attribute_group_id, name)
    "Shirt size", "Weight", "Length", etc.

  attribute_value (attribute_value_id, attribute_group_id, name)
    "Shirt size" would have rows for "Small", "Large", etc.

  product_attribute (product_id, attribute_value)
     "Nike t-shirt" is "Large"

向attribute_value添加“显示顺序”(因此“小”可以显示在“大”之前)。

也可以为您的其他属性执行此操作。

我为生产网站做过这个,我认为它运作良好。

祝你好运。

答案 1 :(得分:0)

为什么不将所有下拉选项放在应用程序作用域变量中,而不是为此创建一个单独的表?然后,您可以将该数据直接添加到产品中的字段作为字符串,并以编程方式处理不同的选项/单元。

答案 2 :(得分:0)

我制作了一个存放衣服的数据库,其中大小有几种类型。一篇文章的大小如xs s m l l other 26 27 28 29 30等。 我决定这样做:

# on one side in the script i define size types and names;
$sizeTypes[1] = [XS, S, M, L];
$sizeTypes[2] = [29, 30, 31, 32];
#The and so on
#and on the other side in the database, there are just two columns

size_type_id(int) | size_qty |

# so if I have one article with 3 pieces of size S 2 pieces of size M and 5 pieces of size L the database will store:
size_type_id|  size_qty     |
1           |0:0;1:3;2:2;3:5|

然后在脚本中我只是翻译它,以便类型1的0是类型1的XS 1是类型2的S 2是31,依此类推