product_var_msts テーブル定義
概要
商品とバリエーション名の関連を管理するテーブル。商品詳細ページで表示する選択肢を決定する。
テーブル情報
| 項目 | 値 |
|---|---|
| テーブル名 | product_var_msts |
| エンジン | InnoDB |
| 文字セット | utf8mb4 |
| 照合順序 | utf8mb4_unicode_ci |
| コメント | 商品バリエーションマスター |
カラム定義
| カラム名 | 型 | NULL | デフォルト | キー | 説明 |
|---|---|---|---|---|---|
| id | BIGINT UNSIGNED | NOT NULL | AUTO_INCREMENT | PK | 主キー |
| variation_name | VARCHAR(255) | NOT NULL | - | - | バリエーション名(サイズ、色等) |
| backend_name | VARCHAR(255) | NOT NULL | - | UNIQUE | バックエンド用名称(size、color等) |
| sort_order | INT | NOT NULL | 0 | - | 表示順序 |
| created_at | TIMESTAMP | NULL | NULL | - | 作成日時 |
| updated_at | TIMESTAMP | NULL | NULL | - | 更新日時 |
インデックス
| 種別 | 名称 | 対象カラム | 説明 |
|---|---|---|---|
| PRIMARY KEY | pk_product_var_msts | id | 主キー |
| UNIQUE KEY | uk_backend_name | backend_name | バックエンド名称の重複防止 |
| INDEX | idx_sort_order | sort_order | 表示順序検索 |
外部キー制約
なし(マスターテーブルのため)
リレーション
| 関連先テーブル | 関連タイプ | 外部キー | 参照先 | ON DELETE | ON UPDATE | 説明 |
|---|---|---|---|---|---|---|
| products | N:N | product_id | id (product_var_mst_rel経由) | ─ | ─ | バリエーションマスターは複数の商品で使用される |
| product_var_mst_rel | 1:N | product_var_mst_id | id | RESTRICT | RESTRICT | 1つのバリエーションマスターは複数の商品関連を持つ |
| product_var_mst_vals | 1:N | product_var_mst_id | id | RESTRICT | RESTRICT | 1つのバリエーションマスターは複数のバリエーション値を持つ |
データ例
Tシャツ商品の場合
| id | variation_name | backend_name | sort_order |
|---|---|---|---|
| 1 | サイズ | size | 1 |
| 2 | 色 | color | 2 |
| 3 | 丈 | length | 3 |
ドリンク商品の場合
| id | variation_name | backend_name | sort_order |
|---|---|---|---|
| 4 | 容量 | capacity | 1 |
| 5 | 味 | flavor | 2 |
備考・注意事項
商品詳細表示での活用
- 商品詳細ページ: このテーブルから選択肢を取得
- 選択肢の順序:
sort_orderで表示順を制御
削除管理
削除制約
外部キー制約:
- product_var_mst_vals: ON DELETE RESTRICT
- product_var_mst_rel: ON DELETE RESTRICT
バリエーション値または商品関連が存在する場合、マスターは削除不可。
推奨: 無効化による管理
削除の代わりに無効化を推奨(将来的にis_visibleカラム追加を検討):
-- 将来の拡張: is_visibleカラム追加
ALTER TABLE product_var_msts
ADD COLUMN is_visible BOOLEAN NOT NULL DEFAULT TRUE COMMENT '表示フラグ';
無効化により: - 既存SKUへの影響を回避 - 履歴データの保持 - 必要に応じて再有効化可能
削除が必要な場合
- 影響範囲の確認: 使用中のSKU数、バリエーション値数、商品関連数
- 関連データの削除:
product_var_mst_val_combs(SKUレベル)product_var_mst_vals(バリエーション値)product_var_mst_rel(商品関連)- マスター削除: 最後に
product_var_mstsを削除
UI推奨実装
- 削除ボタン押下時に影響範囲を表示
- 例: 「このバリエーションマスターは5つの商品、20のSKUで使用されています。削除前に全ての関連データを削除する必要があります。代わりに無効化しますか?」