1

製品バリエーションを有効にするために Web サイトをアップグレードしています。現在、Web サイトはスタンドアロン製品のみを提供していますが、サイズや色など、特定の製品のバリエーションを提供する必要があります。目的は、サイト管理者が製品バリエーションを簡単に挿入/編集できるようにすることです。

現在の構造は次のとおりです。

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

「price」フィールドと「stock_level」フィールドは、各製品バリエーションに関連する必要があります。

商品には、バリエーションの複数の組み合わせを含めることができます。たとえば、次のようになります。

  1. 商品ID 5 - サイズ: S, 色: ブラック
  2. 商品ID 5 - サイズ: S, 色: ブラウン

フロント エンドには、バリアント (サイズと色) を選択するための 2 つのドロップダウンがあります。必要なバリアントを選択すると、値が PHP スクリプトにポストされ、SQL クエリを実行して、その特定のバリアントの組み合わせが利用可能かどうかを確認します。

私はこれに対する解決策を考え出すのに苦労しています。現在、次の機能を作成しています。これが出発点だと思います。

  1. サイズや色などのバリアント タイプを作成/編集する機能:

    table variant_type
    ==================
    id
    name
    
  2. Small、Large、Black、Brown などのバリアント タイプに値を割り当てる機能:

    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

したがって、4 つのテーブルすべてを結合することで、バリアントの詳細を取得できます。一般的に製品に関連する情報がproductテーブルに表示され、新しいテーブルを作成してテーブルにリンクすることで、バリアントのタイプを追加できvariantます。

追加するために編集されました:

このように、新しいタイプのバリアントを追加する場合は、テーブルを追加する必要があります。すべてのバリアントの可能性を 1 つのバリアント テーブルにマージすることで、これを回避することもできます。

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

variantInfo次に、メインの製品テーブルから複数の外部キーを取得します。

私はそれが好きではありません - 同じテーブルに複数の種類の情報を格納するのは好きではありません。紛らわしいと思うだけで、プログラミングロジックをもっと複雑にする必要があります。追加のバリアント型が必要な場合は、今すぐすべてを設定することをお勧めします。これは少し余分な作業であり、使用されないものもありますが、維持するのははるかに簡単だと思います.

于 2012-07-22T18:43:07.160 に答える