コンテンツにスキップ

product_var_mst_val_combs テーブル定義

概要

商品バリエーション(SKU)とバリエーションマスター値の多対多関係を管理する中間テーブル。1つのSKUが複数のバリエーション値(サイズS、色赤など)を組み合わせて構成される場合に使用する。

テーブル情報

項目
テーブル名 product_var_mst_val_combs
エンジン InnoDB
文字セット utf8mb4
照合順序 utf8mb4_unicode_ci
コメント 商品バリエーション-バリエーションマスター値組み合わせ

カラム定義

カラム名 NULL デフォルト キー 説明
product_var_id BIGINT UNSIGNED NOT NULL - PK,FK 商品バリエーションID(product_vars.id)
product_var_mst_vals_id BIGINT UNSIGNED NOT NULL - PK,FK バリエーションマスター値ID(product_var_mst_vals.id)
created_at TIMESTAMP NULL NULL - 作成日時
updated_at TIMESTAMP NULL NULL - 更新日時

インデックス

種別 名称 対象カラム 説明
PRIMARY KEY pk_product_var_mst_val_combs product_var_id, product_var_mst_vals_id 複合主キー
INDEX idx_product_var_mst_vals product_var_mst_vals_id バリエーションマスター値別の検索

外部キー制約

名称 対象カラム 参照先 ON DELETE ON UPDATE 説明
fk_product_var_mst_val_combs_var product_var_id product_vars(id) CASCADE RESTRICT 商品バリエーション削除時に関連レコードも削除
fk_product_var_mst_val_combs_val product_var_mst_vals_id product_var_mst_vals(id) CASCADE RESTRICT バリエーションマスター値削除時に関連レコードも削除

リレーション

関連先テーブル 関連タイプ 外部キー 参照先 ON DELETE ON UPDATE 説明
product_vars N:1 product_var_id id CASCADE RESTRICT 組み合わせは1つの商品バリエーションに属する
product_var_mst_vals N:1 product_var_mst_vals_id id CASCADE RESTRICT 組み合わせは1つのバリエーションマスター値に属する

データ例

Tシャツ商品の場合

product_vars(SKU)

id product_id product_code price stock
1 100 TSH-S-RED 2500 50
2 100 TSH-M-BLUE 2500 30

product_var_mst_val_combs(SKUとバリエーション値の組み合わせ)

product_var_id product_var_mst_vals_id 説明
1 1 (サイズ-S) SKU#1の1つ目の軸
1 5 (色-赤) SKU#1の2つ目の軸
2 2 (サイズ-M) SKU#2の1つ目の軸
2 6 (色-青) SKU#2の2つ目の軸

product_var_mst_vals(バリエーション値マスター)

id product_var_mst_id variation_value
1 1 (サイズ) S
2 1 (サイズ) M
5 2 (色)
6 2 (色)
10 3 (素材) コットン

3軸バリエーションの例(Tシャツ:サイズ×色×素材)

product_vars(SKU)

id product_id product_code price stock
3 100 TSH-S-RED-COTTON 2500 20

product_var_mst_val_combs(3軸の組み合わせ)

product_var_id product_var_mst_vals_id 説明
3 1 (サイズ-S) 1つ目の軸
3 5 (色-赤) 2つ目の軸
3 10 (素材-コットン) 3つ目の軸

備考・注意事項

多軸バリエーションの表現

  • 1軸: サイズのみ(S、M、L)
  • 2軸: サイズ×色(S-赤、M-青など)
  • 3軸以上: サイズ×色×素材など、無制限に対応

商品詳細表示での活用

  • 商品詳細ページ: このテーブルから逆引きしてバリエーション軸を取得
  • データ整合性: 真実の情報源から取得することで、実際のSKUと表示が一致
  • 実装例: 商品のバリエーション選択肢は、実際に存在するSKUから動的に生成

軸数制約

  • 軸数一致: 商品で選択した軸数と、SKUの軸数は一致する必要がある
  • 制約例:
  • 2軸選択商品(サイズ×色)→ 2軸のSKUのみ作成可能
  • 3軸選択商品(サイズ×色×素材)→ 3軸のSKUのみ作成可能
  • 実装: SKU作成時に、選択された軸数と一致するかバリデーション

データ整合性

  • UNIQUE制約: 同じSKUに同じバリエーション値を重複登録不可
  • 外部キー制約: 存在しないSKUやバリエーション値は登録不可
  • CASCADE削除: SKUまたはバリエーション値が削除されると、関連する組み合わせも自動削除