我正在做一个网上商店,每个产品都有几种变体。
所有变种实际上都是他们自己的产品。每种产品的SKU不同,但“一种产品”的所有变体的产品编号相同。
变体组合保存在名为variantvalues的单独表中。有产品SKU,fieldname和fieldvalue。
假设我有3个产品。 SKU:0505002699 / SB / M,0505002699 / SC / L和0505002699 / SC / M.
所有产品的产品编号相同; 0505002699。
产品包含以下字段:颜色,尺寸。
这些是每种产品的价值:
0505002699 / SB / M
颜色:黑色
尺寸:小
0505002699 / SC / L
颜色:蓝色
尺寸:中等
0505002699 / SC / M
颜色:红色
尺寸:小
任何人都知道如何循环前端?最终结果应该是:http://i.stack.imgur.com/rAxeG.png
问题(对我而言)是弄清楚如何列出可能的“配置”。
任何?
答案 0 :(得分:0)
快速思考实施:
如果每种产品的“配置”都是可变的:
额外表格:
size
- code
- descr
fe:
S - Small
M - Medium
然后是产品和尺寸之间的表格:
product_size
- product_id
- size_code
FE:
1 - S
1 - M
2 - S
...
对于颜色:
product_color
- product_id
- color
FE:
1 - #FFFFFF
1 - #000000
2 - #000000
...
然后,您可以按product_id为每个产品选择所有选项。
FE:
SELECT color FROM colors WHERE product_id = $product_id;
SELECT size_code FROM product_size WHERE product_id = $product_id;
编辑:哇,我误读了你的一部分问题,抱歉
答案 1 :(得分:0)
虽然Nathan的答案是可行的,但你可能会考虑一个更通用的版本(这里没有严格的语法检查,只是刺了一下):
create table configurations (
id int auto_increment primary key,
product_id int not null,
name varchar(50) not null,
value varchar(255) not null default "",
FOREIGN KEY (product_id) REFERENCES product(id)
)
然后你可以随心所欲地创建新类型的配置(configurations.name)并在代码中处理它们。
select value from configurations where product_id=$product_id and name='color';
select value from configurations where product_id=$product_id and name='size';
现在,这种方法的缺点是库存可能是一个问题,因此处理此问题的另一种方法是将它们作为项目表(产品表?)中彼此相关的单个项目。将它们合并到您的视图页面的代码中,但所有蓝色衬衫的库存可以与红色衬衫分开维护。