【问题标题】:Front-end product variants in PHP+MySQL?PHP+MySQL 中的前端产品变体?
【发布时间】:2011-11-08 14:14:24
【问题描述】:

我在做网店,每个产品都可以有多个变体。

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

变体组合保存在一个称为变体值的单独表中。里面有产品 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

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

有人吗?

【问题讨论】:

  • 具体是什么给您带来了麻烦?显示这个?查询这个?这对我来说似乎很简单,如果不知道具体是什么问题,我不知道如何为您提供帮助。
  • 所以产品没有唯一标识符(不是变体)?

标签: php mysql variants


【解决方案1】:

只是对实现的快速思考:

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

额外的表格:

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;

编辑:哇,我误读了你的部分问题,抱歉

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2018-08-26
      • 2019-01-23
      相关资源
      最近更新 更多