我正在开发产品数据库,对于尺寸我创建了一个单独的表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'。'英寸'),......
还有更好的建议吗?
答案 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,依此类推