我正在升级网站以启用产品变体 - 目前该网站仅提供独立产品,但现在需要提供特定产品的变体,例如大小或颜色。目的是使网站管理员能够轻松插入/编辑产品变体。
目前的结构如下:
table product
=============
id
name
description
category_id
price
stock_level
字段'price'和'stock_level'现在需要与每个产品变体相关。
产品可以有多种变体组合,例如:
在前端有两个下拉菜单可供选择(尺寸和颜色)。选择所需的变体后,这些值将发布到PHP脚本,该脚本运行SQL查询以检查该特定变体组合是否可用。
我正在努力想出一个解决方案。我目前创建了以下功能,我认为这是起点:
能够创建/编辑变体类型,例如尺寸或颜色:
table variant_type
==================
id
name
能够为变体类型指定值,例如小,大,黑色,棕色:
table variant_type_value
========================
id
name
variant_type_id
我正在努力想出用于存储产品变体组合(包括其价格和库存水平)的表格的设计。
请记住,在后端会有一个“添加新变体”的表单 - 在此表单上,管理员需要选择“大小”,“颜色”,“价格”和“库存水平”时添加/编辑变体。
答案 0 :(得分:2)
我认为最简单的方法是拥有一张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
的多个外键。
我不喜欢这样 - 我不喜欢在同一个表中存储多种类型的信息。我只是觉得它很混乱,你需要让编程逻辑更复杂。如果你想要额外的变种类型,我建议你现在就把它们全部设置好 - 这是一些额外的工作,其中一些不会被使用,但我认为它更容易维护。