0

我正在做一个网上商店,每个产品都可以有几个变体。

所有变体实际上都是他们自己的产品。每个产品的 SKU 不同,但“一个产品”的所有变体的产品编号都是相同的。

变体组合保存在称为变体值的单独表中。其中有产品 SKU、字段名和字段值。

假设我有 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

问题(对我来说)是弄清楚如何列出可能的“配置”。

任何人?

4

2 回答 2

0

只是一个快速的实现思路:

如果每个产品的“配置”是可变的:

额外表:

size
  - code
  - descr

费:

S - Small
M - Medium

然后是产品和尺寸之间的表格:

product_size
   - product_id
   - size_code

费:

1 - S
1 - M
2 - S
...

对于颜色:

product_color
   - product_id
   - color

费:

1 - #FFFFFF
1 - #000000
2 - #000000
...

然后您可以通过 product_id 为每个产品选择所有选项。

费:

SELECT color FROM colors WHERE product_id = $product_id;
SELECT size_code FROM product_size WHERE product_id = $product_id;

编辑:哇,我误读了你问题的一部分,对不起

于 2011-11-08T14:24:49.843 回答
0

虽然内森的答案是可行的,但您可能会考虑一个更通用的版本(这里不是严格的语法检查,只是试一下):

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';

现在,这种方法的缺点是库存可能是一个问题,因此解决此问题的另一种方法是将它们作为相互关联的项目表(产品表?)中的单个项目。将它们组合到您的视图页面的代码中,但所有蓝色衬衫的库存可以与红色衬衫分开维护。

于 2011-11-08T18:27:41.670 回答