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)を削除