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またはバリエーション値が削除されると、関連する組み合わせも自動削除