好的,我知道这个标题听起来很混乱,但这里基本上我遇到了麻烦,我现在有一个这样的库存表:
CREATE TABLE inventory (
productid MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
category VARCHAR(100) NOT NULL,
subcategory VARCHAR(100) NOT NULL,
productname VARCHAR(150) NOT NULL,
description TEXT NOT NULL,
price DECIMAL(4,2) NOT NULL,
pathtoimage VARCHAR(150),
amountinstock SMALLINT UNSIGNED NOT NULL,
PRIMARY KEY (productid)
);
我正在构建的应用程序有两个额外的字段是“大小”和“颜色”。这将是一个基本上网站管理员将填写并能够添加新库存的表单。我需要它,以便他们可以为同一产品输入多种尺寸和颜色。例如:
S,M,L,XL
白色,黑色,蓝色
如何为一条记录存储这些多个值?对不起,如果这是不明确的......我试图尽可能地解释它。
答案 0 :(得分:2)
这很简单。
再添加两个表格。 一种称为尺寸,一种称为颜色。
表颜色: Color Product_id
表格大小: 尺寸Product_id
然后这是一个简单的问题
SELECT `color` FROM `colours` WHERE `product_id`='myproductid';
SELECT `Size` FROM `sizes` WHERE `product_id`='myproductid';
然后简单地遍历它。
这是做到这一点的方法。
如果您希望增加复杂性但是可维护性,则可以制作4张新表
颜色:Color_ID Color_name Color_sample
尺寸:Size_ID Size_label Size_name Size_alt
表prod_colors: Color_ID Product_id数量
table prod_sizes: Size_ID Product_id数量
然后这是一个简单的问题
SELECT * FROM `prod_colors`
JOIN `Colours` on `Colours`.`Color_id` = `prod_colors`.`Color_id`
WHERE `product_id`='myproductid' AND `qty` > '0';
SELECT `Size` FROM `sizes`
JOIN `Sizes` on `Sizes`.`Size_ID` = `prod_sizes`.`Size_ID`
WHERE `product_id`='myproductid' AND `qty` > '0';
答案 1 :(得分:0)
您可以将它们以逗号分隔的字符串形式存储在单个列中