コンテンツにスキップ

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への影響を回避 - 履歴データの保持 - 必要に応じて再有効化可能

削除が必要な場合

  1. 影響範囲の確認: 使用中のSKU数、バリエーション値数、商品関連数
  2. 関連データの削除:
  3. product_var_mst_val_combs(SKUレベル)
  4. product_var_mst_vals(バリエーション値)
  5. product_var_mst_rel(商品関連)
  6. マスター削除: 最後にproduct_var_mstsを削除

UI推奨実装

  • 削除ボタン押下時に影響範囲を表示
  • 例: 「このバリエーションマスターは5つの商品、20のSKUで使用されています。削除前に全ての関連データを削除する必要があります。代わりに無効化しますか?」