1

我正在升级网站以启用产品变体 - 目前该网站仅提供独立产品,但现在需要提供特定产品的变体,例如尺寸或颜色。目的是使站点管理员能够轻松插入/编辑产品变体。

目前的结构如下:

table product
=============
id
name
description
category_id
price
stock_level

“价格”和“库存级别”字段现在需要与每个产品变体相关。

一个产品可以有多种变体组合,例如:

  1. 产品 ID 5 - 尺寸:小号,颜色:黑色
  2. 产品 ID 5 - 尺寸:小号,颜色:棕色

在前端有两个下拉菜单可以选择变体(尺寸和颜色)。选择所需的变体后,这些值将发布到 PHP 脚本,该脚本运行 SQL 查询以检查该特定变体组合是否可用。

我正在努力为此想出一个解决方案。我目前创建了以下功能,我认为这是起点:

  1. 能够创建/编辑变体类型,例如尺寸或颜色:

    table variant_type
    ==================
    id
    name
    
  2. 能够为变体类型分配值,例如小、大、黑色、棕色:

    table variant_type_value
    ========================
    id
    name
    variant_type_id
    

我正在努力想出将存储产品变体组合(包括它们的价格和库存水平)的表的设计。

请记住,在后端,将有一个“添加新变体”表单 - 在此表单上,管理员在添加/编辑时需要选择“尺寸”、“颜色”、“价格”和“库存水平”一个变种。

4

1 回答 1

3

我认为最简单的方法是有一个 Product 表;通过包含 Product 表以及 Size 和 Color 表的外键,其中将包含变体的所有详细信息:

table variant
=============
variantID
productID
sizeID
colourID
stock
price

table product 
============= 
id 
name 
description 
category_id 

table size
==========
sizeID
sizeName

table colour
============
colourID
colourName

因此,您可以通过将所有四个表连接在一起来获取变体的详细信息。与产品相关的信息通常在product表格中,您可以通过创建新表格并将它们链接到表格中来添加额外类型的变体variant

编辑添加:

这样,如果要添加新类型的变体,则需要添加额外的表。您还可以通过将所有变体可能性合并到一个变体表中来解决它:

+--+------+------+
|ID|Type  |Option|
+--+------+------+
|1 |Colour|Brown |
|2 |Size  |Small |
+--+------+------+

然后,您将variantInfo在主产品表中拥有多个外键。

我不喜欢这样——我不喜欢在同一个表中存储多种类型的信息。我只是觉得这很混乱,你需要让编程逻辑更复杂。如果您想拥有额外的变体类型,我建议您现在就将它们全部设置好——这是一些额外的工作,其中一些不会被使用,但我认为它更容易维护。

于 2012-07-22T18:43:07.160 回答