多くのアプリケーションには、1 つまたは複数の次元に沿ってわずかに異なる可能性のある製品が含まれます。たとえば、「T シャツ」という商品があるとしますが、サイズ (小、中、大) と色 (白、青、赤) が異なります。
これをモデル化する 1 つの方法データベースでは、Entity-Attribute-Value (EAV) パターンを使用します。これは、本質的には、各行がエンティティの属性とその属性の値を表す単なる大きなテーブルです。ただし、EAV は非効率的でクエリが難しい場合があるため、常に最適なソリューションであるとは限りません。
もう 1 つのオプションは、エンティティの各属性に独自のテーブルを持つ、より正規化されたスキーマを使用することです。たとえば、
PRODUCTS ======== id | product_name
PRODUCT_VARIANTS ================ id | product_id | name
PRODUCT_VARIANT_OPTIONS ======================= id | product_variant_id | name
SKUS ==== id | product_id | sku | price
PRODUCTS ======== 1 | Widget 1
PRODUCT_VARIANTS ================ 1 | 1 | Size 2 | 1 | Color
PRODUCT_VARIANT_OPTIONS ======================= 1 | 1 | Small 2 | 1 | Large 3 | 2 | White 4 | 2 | Black
SKUS ==== 1 | 1 | W1SSCW | 10 2 | 1 | W1SSCB | 10 3 | 1 | W1SLCW | 12 4 | 1 | W1SLCB | 15
以上がデータベース内の製品バリエーションを効果的にモデル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。