首页 文章

PHP MySQL中的前端产品变体?

提问于
浏览
0

我正在做网上商店,每个产品都有几个变种 .

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

变体组合保存在名为variantvalues的单独表中 . 有产品SKU,fieldname和fieldvalue .

假设我有3个产品 . SKU:0505002699 / SB / M,0505002699 / SC / L和0505002699 / SC / M.

所有产品都有相同的产品数量; 0505002699 .

产品有以下领域:颜色,尺寸 .

这些是每种产品的 Value :

0505002699/SB/M

颜色:黑色

尺寸:小

0505002699/SC/L

颜色:蓝色

尺寸:中等

0505002699/SC/M

红色

尺寸:小


任何人都知道如何循环前端?最终结果应该是这样的:http://i.stack.imgur.com/rAxeG.png

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

任何人?

2 回答

  • 0

    只是快速思考实施:

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

    额外的 table :

    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;
    

    EDIT: wow i misread a part of your question, sorry

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

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

相关问题