コンテンツにスキップ

product_var_mst_rel テーブル定義

概要

商品とバリエーションマスターの多対多関係を管理する中間テーブル。商品がどのバリエーションマスターを使用するかを定義する。

用途: 商品に対するバリエーションの組み合わせを選択する画面(EC-CUBEでいう規格選択画面)で利用する。商品登録時に「この商品はどのバリエーション軸(サイズ、色等)を使うか」を事前選択し、SKU作成画面で選択肢を絞り込むために使用する。

軸数制約: 商品で選択した軸数と、実際に作成するSKUの軸数は一致する必要がある。2軸選択の場合は2軸でのSKU登録、3軸選択の場合は3軸でのSKU登録を強制する。

テーブル情報

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

カラム定義

カラム名 NULL デフォルト キー 説明
product_id BIGINT UNSIGNED NOT NULL - PK,FK 商品ID(products.id)
product_var_mst_id BIGINT UNSIGNED NOT NULL - PK,FK バリエーションマスターID(product_var_msts.id)
created_at TIMESTAMP NULL NULL - 作成日時
updated_at TIMESTAMP NULL NULL - 更新日時

インデックス

種別 名称 対象カラム 説明
PRIMARY KEY pk_product_var_mst_rel product_id, product_var_mst_id 複合主キー
INDEX idx_product_var_mst product_var_mst_id バリエーションマスター別の検索

外部キー制約

名称 対象カラム 参照先 ON DELETE ON UPDATE 説明
fk_product_var_mst_rel_product product_id products(id) CASCADE RESTRICT 商品削除時に関連レコードも削除
fk_product_var_mst_rel_mst product_var_mst_id product_var_msts(id) RESTRICT RESTRICT バリエーションマスター削除時は商品との関連を先に削除する必要がある

リレーション

関連先テーブル 関連タイプ 外部キー 参照先 ON DELETE ON UPDATE 説明
products N:1 product_id id CASCADE RESTRICT 商品-バリエーションマスター関連は商品に属する
product_var_msts N:1 product_var_mst_id id RESTRICT RESTRICT 商品-バリエーションマスター関連はバリエーションマスターに属する

データ例

Tシャツ商品の場合

product_id product_var_mst_id
100 1 (サイズ)
100 2 (色)
200 1 (サイズ)
200 3 (丈)
300 4 (容量)
300 5 (味)

備考・注意事項

データ整合性の方針

真実の情報源(Single Source of Truth)

  • 実データ: product_var_mst_val_combsが真実の情報源
  • 補助情報: product_var_mst_relは商品登録時のUI補助情報

不整合が発生する可能性

以下のケースでデータ不整合が発生しうる:

ケース1: マスター選択したが、SKUを作成していない

product_var_mst_rel: 商品100 → サイズマスター(事前選択)
product_vars: (SKUなし)
→ 商品詳細ページで選択肢を表示できない

注意: UIの想定フローでは、選択していない軸の値は選択肢に表示されないため、選択していない軸を使用する不整合は基本的に発生しない