コンテンツにスキップ

product_var_mst_vals テーブル定義

概要

バリエーションマスターとバリエーション値の関連を管理するテーブル。商品で使用可能な具体的な選択肢を定義する。

テーブル情報

項目
テーブル名 product_var_mst_vals
エンジン InnoDB
文字セット utf8mb4
照合順序 utf8mb4_unicode_ci
コメント 商品バリエーションマスター値関連

カラム定義

カラム名 NULL デフォルト キー 説明
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PK 主キー
product_var_mst_id BIGINT UNSIGNED NOT NULL - FK バリエーションマスターID(product_var_msts.id)
variation_value VARCHAR(255) NOT NULL - - バリエーション値(例:S、M、L)
backend_value VARCHAR(255) NOT NULL - UNIQUE バックエンド用値(例:size_s、size_m、size_l)
sort_order INT NOT NULL 0 - 表示順序
is_visible BOOLEAN NOT NULL TRUE - 表示フラグ
created_at TIMESTAMP NULL NULL - 作成日時
updated_at TIMESTAMP NULL NULL - 更新日時

インデックス

種別 名称 対象カラム 説明
PRIMARY KEY pk_product_var_mst_vals id 主キー
UNIQUE KEY uk_backend_value backend_value バックエンド用値の重複防止
UNIQUE KEY uk_mst_value product_var_mst_id, variation_value 同じ組み合わせの重複防止
INDEX idx_product_var_mst product_var_mst_id バリエーションマスター別の検索

外部キー制約

名称 対象カラム 参照先 ON DELETE ON UPDATE 説明
fk_product_var_mst_vals_mst product_var_mst_id product_var_msts(id) RESTRICT RESTRICT バリエーション値が存在するマスターは削除不可

リレーション

関連先テーブル 関連タイプ 外部キー 参照先 ON DELETE ON UPDATE 説明
product_var_msts N:1 product_var_mst_id id RESTRICT RESTRICT バリエーション値は1つのバリエーションマスターに属する
product_var_mst_val_combs 1:N id product_var_mst_vals_id CASCADE RESTRICT 1つのバリエーション値は複数の商品バリエーション組み合わせで使用される

データ例

Tシャツ商品の場合

id product_var_mst_id variation_value backend_value sort_order is_visible
1 1 (サイズ) S size_s 1 TRUE
2 1 (サイズ) M size_m 2 TRUE
3 1 (サイズ) L size_l 3 TRUE
4 2 (色) color_red 1 TRUE
5 2 (色) color_blue 2 TRUE

ドリンク商品の場合

id product_var_mst_id variation_value backend_value sort_order is_visible
6 3 (容量) 350ml volume_350ml 1 TRUE
7 3 (容量) 500ml volume_500ml 2 TRUE
8 4 (味) レモン flavor_lemon 1 TRUE
9 4 (味) オレンジ flavor_orange 2 TRUE

備考・注意事項

多軸バリエーション対応

  • 組み合わせ表現: 複数のバリエーション値を組み合わせてSKUを構成
  • : Tシャツ「S-赤」は、サイズSと色赤の2つのバリエーション値の組み合わせ
  • 柔軟性: 2軸(サイズ×色)、3軸(サイズ×色×素材)など無制限に対応

バリエーション値の管理方式

グローバル管理

  • 全商品共通のプール: すべての商品で共通のバリエーション値を管理
  • : サイズマスター(id=1)には「S, M, L, XL, 28, 30, 32, 34」などすべてのサイズ値を登録
  • 商品での使用: 各商品のSKU(product_vars)が、プールから必要な値のみを選択
  • Tシャツ商品: S, M, L を使用
  • パンツ商品: 28, 30, 32 を使用

柔軟な組み合わせ

  • 1つの商品が複数のマスターから値を選択可能
  • 商品ごとに異なる組み合わせを実現(Tシャツ: サイズ×色、ドリンク: 容量×味)

表示制御

  • 表示順序: sort_orderで選択肢の表示順を制御
  • 表示/非表示: is_visibleで一時的に選択肢を非表示に可能

削除時の注意

バリエーション値の削除制約

外部キー制約: ON DELETE RESTRICT

  • 使用中のバリエーション値は削除不可
  • 削除手順:
  • 該当バリエーション値を使用する全SKUのproduct_var_mst_val_combsレコードを削除
  • (SKUに他のバリエーション値が残っていない場合)該当SKU(product_vars)も削除
  • 最後にバリエーション値(product_var_mst_vals)を削除

バリエーションマスターの削除制約

外部キー制約: ON DELETE RESTRICT

  • バリエーション値が存在するマスターは削除不可
  • 推奨: 削除の代わりにis_visible=FALSEで無効化
  • 削除が必要な場合の手順:
  • 全SKUのproduct_var_mst_val_combsから該当マスターの値を削除
  • product_var_mst_valsから該当マスターの全値を削除
  • product_var_mst_relから商品との関連を削除
  • 最後にバリエーションマスター(product_var_msts)を削除