# EC-CUBE データベースのテーブル構成とデータ移行

EC-CUBE における主要なテーブルの役割や構成要素、関連性などを解説します。会員データ、管理者データ、商品データ、カテゴリデータ、受注データ、支払い方法、配送方法、税設定、カート、決済と配送の紐付けなどのテーブルの役割を説明します。
EC-CUBE のデータベースの全体像を把握し、システム開発や運用に役立てることができるようになります。

# よく使われているテーブル

# 会員データ

テーブル名 説明
dtb_customer 会員情報を管理するテーブル。会員 ID、メールアドレス、パスワード、氏名、性別、生年月日、郵便番号、住所、電話番号、職業 ID、作成日時、更新日時、削除フラグを持つ
dtb_customer_address 会員の配送先住所情報を管理するテーブル。会員 ID、氏名、性別、郵便番号、住所、作成日時、更新日時、削除フラグを持つ
mtb_sex 性別情報を管理するマスタテーブル。性別 ID、性別名を持つ
mtb_job 職業情報を管理するマスタテーブル。職業 ID、職業名を持つ

# 管理者データ

テーブル名 説明
dtb_member 管理者情報を管理するテーブル。管理者 ID、メールアドレス、パスワード、氏名、作成日時、更新日時、削除フラグ、権限 ID を持つ
mtb_authority 管理者の権限情報を管理するマスタテーブル。権限 ID、権限名を持つ

# 商品データ

テーブル名 説明
dtb_product 商品情報を管理するテーブル。商品 ID、商品名、商品説明、価格、在庫数、作成日時、更新日時、削除フラグを持つ
dtb_product_class 商品の種類情報を管理するテーブル。商品 ID、商品種類 ID、作成日時、更新日時、削除フラグを持つ
dtb_class_category 商品の種類カテゴリ情報を管理するテーブル。商品種類 ID、カテゴリ ID、作成日時、更新日時、削除フラグを持つ
dtb_class_name 商品の種類名情報を管理するテーブル。商品種類 ID、商品種類名、作成日時、更新日時、削除フラグを持つ
dtb_product_image 商品画像情報を管理するテーブル。商品 ID、画像ファイル名、画像パス、作成日時、更新日時、削除フラグを持つ
mtb_sale_type 商品の販売タイプ情報を管理するマスタテーブル。販売タイプ ID、販売タイプ名を持つ

# カテゴリデータ

テーブル名 説明
dtb_category 商品のカテゴリ情報を管理するテーブル。カテゴリごとに一意な ID とカテゴリ名、親カテゴリ ID が格納される
dtb_product_category 商品とカテゴリの関連情報を管理するテーブル。商品 ID とカテゴリ ID が組み合わされた情報が格納され、一つの商品が複数のカテゴリに所属することができる

# 受注データ

テーブル名 説明
dtb_order 受注情報を管理するテーブル。受注ごとに一意な ID や受注日時、支払い方法、配送方法、配送状況などの情報が格納される
dtb_shipping 配送先情報を管理するテーブル。受注 ID や受注者の名前、住所、電話番号、配送業者名、配送状況などの情報が格納される
dtb_order_item 受注商品情報を管理するテーブル。受注 ID、商品 ID、個数、価格、オプション情報などが格納される。1 つの受注に対して、複数の商品が登録されることがある

# 支払い方法

テーブル名 説明
dtb_payment 支払い方法情報を管理するテーブル。支払い方法ごとに一意な ID や支払い方法名、支払い方法の種類、支払手数料、利用可能な最低/最高金額、手数料計算方法、備考などが格納される

# 配送方法

テーブル名 説明
dtb_delivery 配送業者情報を管理するテーブル。配送業者ごとに一意な ID や配送業者名、配送業者の種類、配送料、備考などの情報が格納される
dtb_delivery_fee 配送料金情報を管理するテーブル。配送業者 ID、配送エリア、商品の重量や価格帯によって異なる配送料金や、配送料金の種類(一律・個別設定など)、備考などの情報が格納される
dtb_delivery_time 配送時間帯情報を管理するテーブル。配送業者 ID、配送時間帯名、配送可能な曜日・時間帯、配送日時指定の有無、備考などの情報が格納される

# 税設定

テーブル名 説明
dtb_tax_rule 税金ルール情報を管理するテーブル。税金ルールごとに一意な ID、税率、適用開始日、適用終了日、税額端数処理、備考などが格納される。商品の税額計算に使用される

# カート

テーブル名 説明
dtb_cart カート情報を管理するテーブル。カートごとに一意な ID やユーザー ID、カート内の商品の合計金額、割引クーポンの使用情報などが格納される
dtb_cart_item カート内の商品情報を管理するテーブル。カート内の商品ごとに一意な ID やカート ID、商品 ID、数量、販売単価、小計金額、注文商品としてのステータスなどが格納される

# 決済と配送の紐づけ

テーブル名 説明
dtb_payment_option 支払方法と配送方法の紐付け情報を管理するテーブル。支払方法ごとに一意な ID や配送方法 ID、配送地域、配送時間帯などが格納される。支払方法によっては、配送方法や配送地域によって手数料が変わる場合があるため、それらを管理することで正確な手数料の計算が可能となる

# テーブル一覧

テーブル名 概要
dtb_authority_role 権限に対するアクセス不可 URL
dtb_base_info ショップ基本情報
dtb_block ブロック一覧
dtb_block_position ブロック配置
dtb_cart ショッピングカート
dtb_cart_item カート内の個別の商品データ
dtb_category カテゴリー
dtb_class_category 規格分類
dtb_class_name 規格名
dtb_csv CSV 出力の列内容
dtb_customer 会員
dtb_customer_address 会員が登録しているお届け先の一覧
dtb_customer_favorite_product 会員がお気に入りに登録した商品
dtb_delivery 配送方法の一覧
dtb_delivery_duration 配送に必要な日数の一覧
dtb_delivery_fee 配送方法、都道府県ごとの配送料一覧
dtb_delivery_time 配送方法ごとにお届け希望日時の一覧
dtb_layout レイアウト一覧
dtb_mail_history 受注メールの履歴
dtb_mail_template 配信メールテンプレート一覧
dtb_member 管理ユーザー一覧
dtb_news 新着情報の一覧
dtb_order 注文
dtb_order_item 注文商品の個別明細
dtb_order_pdf 出力する帳票の一覧
dtb_page 公開側ページの一覧
dtb_page_layout レイアウトとページの紐付け
dtb_payment 支払方法の一覧
dtb_payment_option 支払方法と配送方法の紐付け
dtb_plugin プラグインの一覧
dtb_product 商品
dtb_product_category 商品とカテゴリーの紐付け
dtb_product_class 商品の規格
dtb_product_image 商品の画像
dtb_product_stock 商品規格ごとの在庫
dtb_product_tag 商品とタグの紐付け
dtb_shipping 注文の配送先情報
dtb_tag タグの一覧
dtb_tax_rule 税率一覧
dtb_template ショップテンプレート一覧
mtb_authority 権限のマスター
mtb_country 国マスター
mtb_csv_type 出力可能 CSV の種類
mtb_customer_order_status マイページ受注ステータス一覧
mtb_customer_status 会員ステータス一覧
mtb_device_type デバイスの種類マスター
mtb_job 職業マスター
mtb_order_item_type 受注内の明細種別
mtb_order_status 受注ステータス一覧
mtb_order_status_color 受注ステータス別カラー一覧
mtb_page_max 管理画面表示件数選択肢
mtb_pref 都道府県マスター
mtb_product_list_max 商品一覧ページ商品表示数選択肢
mtb_product_list_order_by 商品一覧ページ並び順選択肢
mtb_product_status 商品ステータスの一覧
mtb_rounding_type 端数の処理方法一覧
mtb_sex 性別マスタ
mtb_work 管理ユーザー稼働状況一覧

# ローカル EC-CUBE4 からリモート EC-CUBE4 へ カテゴリデータと商品データ移行

  1. カテゴリと商品データ保存しているテーブルデータをエクスポート

カテゴリデータ・商品データのテーブル一覧

テーブル名 説明 外部キー
dtb_category 商品カテゴリー ⚪︎
dtb_class_category 商品規格分類 ⚪︎
dtb_class_name 商品規格名 ⚪︎
dtb_product 商品情報 ⚪︎
dtb_product_category 商品とカテゴリーの紐付け -
dtb_product_class 商品の規格 ⚪︎
dtb_product_image 商品の画像 -
dtb_product_stock 商品規格ごとの在庫 -
dtb_product_tag 商品とタグの紐付け ⚪︎
dtb_tag タグの一覧 ⚪︎

dtb_product_category dtb_product_image dtb_product_stock テーブル以外は Foreign key があるため、テーブル構造変更の対応が必要です。

  1. 移行先のテーブル構造変更で外部制約キー foreign key 削除
# dtb_category
ALTER TABLE dtb_product_category DROP FOREIGN KEY `FK_B057789112469DE2`;

# dtb_class_category
ALTER TABLE dtb_product_class DROP FOREIGN KEY `FK_1A11D1BA248D128`;
ALTER TABLE dtb_product_class DROP FOREIGN KEY `FK_1A11D1BA9B418092`;

# dtb_class_name
ALTER TABLE dtb_class_category DROP FOREIGN KEY `FK_9B0D1DBAB462FB2A`;

# dtb_product
ALTER TABLE dtb_product_class DROP FOREIGN KEY `FK_1A11D1BA4584665A`;
ALTER TABLE dtb_product_image DROP FOREIGN KEY `FK_3267CC7A4584665A`;
ALTER TABLE dtb_product_tag DROP FOREIGN KEY `FK_4433E7214584665A`;
ALTER TABLE dtb_tax_rule DROP FOREIGN KEY `FK_59F696DE4584665A`;
ALTER TABLE dtb_order_item DROP FOREIGN KEY `FK_A0C8C3ED4584665A`;
ALTER TABLE dtb_product_category DROP FOREIGN KEY `FK_B05778914584665A`;
ALTER TABLE dtb_customer_favorite_product DROP FOREIGN KEY `FK_ED6313834584665A`;

# dtb_product_class
ALTER TABLE dtb_tax_rule DROP FOREIGN KEY `FK_59F696DE21B06187`;
ALTER TABLE dtb_order_item DROP FOREIGN KEY `FK_A0C8C3ED21B06187`;
ALTER TABLE dtb_cart_item DROP FOREIGN KEY `FK_B0228F7421B06187`;
ALTER TABLE dtb_product_stock DROP FOREIGN KEY `FK_BC6C9E4521B06187`;

# dtb_product_tag
DELETE FROM dtb_product_tag WHERE tag_id NOT IN( SELECT id FROM dtb_tag );
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_4433E721BAD26311 FOREIGN KEY (tag_id) REFERENCES dtb_tag (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

# dtb_tag
ALTER TABLE dtb_product_tag DROP FOREIGN KEY `FK_4433E721BAD26311`;
  1. 移行先に SQL インポート
  2. 移行先外部制約キー追加
# dtb_category
DELETE FROM dtb_product_category WHERE category_id NOT IN( SELECT id FROM dtb_category );
ALTER TABLE dtb_product_category ADD CONSTRAINT FK_B057789112469DE2 FOREIGN KEY (category_id) REFERENCES dtb_category (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

# dtb_class_category
DELETE FROM dtb_product_class WHERE class_category_id1 NOT IN( SELECT id FROM dtb_class_category );
DELETE FROM dtb_product_class WHERE class_category_id2 NOT IN( SELECT id FROM dtb_class_category );
ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA248D128 FOREIGN KEY (class_category_id1) REFERENCES dtb_class_category (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA9B418092 FOREIGN KEY (class_category_id2) REFERENCES dtb_class_category (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

# dtb_class_name
DELETE FROM dtb_class_category WHERE class_name_id NOT IN( SELECT id FROM dtb_class_name );
ALTER TABLE dtb_class_category ADD CONSTRAINT FK_9B0D1DBAB462FB2A FOREIGN KEY (class_name_id) REFERENCES dtb_class_name (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

# dtb_product
DELETE FROM dtb_product_class WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_product_image WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_product_tag WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_product_tag WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_order_item WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_product_category WHERE product_id NOT IN( SELECT id FROM dtb_product );
DELETE FROM dtb_customer_favorite_product WHERE product_id NOT IN( SELECT id FROM dtb_product );
ALTER TABLE dtb_product_class ADD CONSTRAINT FK_1A11D1BA4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_image ADD CONSTRAINT FK_3267CC7A4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_4433E7214584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_59F696DE4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_order_item ADD CONSTRAINT FK_A0C8C3ED4584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_category ADD CONSTRAINT FK_B05778914584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_customer_favorite_product ADD CONSTRAINT FK_ED6313834584665A FOREIGN KEY (product_id) REFERENCES dtb_product (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

# dtb_product_class
DELETE FROM dtb_tax_rule WHERE product_class_id NOT IN( SELECT id FROM dtb_product_class );
DELETE FROM dtb_order_item WHERE product_class_id NOT IN( SELECT id FROM dtb_product_class );
DELETE FROM dtb_cart_item WHERE product_class_id NOT IN( SELECT id FROM dtb_product_class );
DELETE FROM dtb_product_stock WHERE product_class_id NOT IN( SELECT id FROM dtb_product_class );
ALTER TABLE dtb_tax_rule ADD CONSTRAINT FK_59F696DE21B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_order_item ADD CONSTRAINT FK_A0C8C3ED21B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_cart_item ADD CONSTRAINT FK_B0228F7421B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (id) ON DELETE RESTRICT ON UPDATE RESTRICT;
ALTER TABLE dtb_product_stock ADD CONSTRAINT FK_BC6C9E4521B06187 FOREIGN KEY (product_class_id) REFERENCES dtb_product_class (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

# dtb_product_tag
DELETE FROM dtb_product_tag WHERE tag_id NOT IN( SELECT id FROM dtb_tag );
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_4433E721BAD26311 FOREIGN KEY (tag_id) REFERENCES dtb_tag (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

# dtb_tag
DELETE FROM dtb_product_tag WHERE tag_id NOT IN( SELECT id FROM dtb_tag );
ALTER TABLE dtb_product_tag ADD CONSTRAINT FK_4433E721BAD26311 FOREIGN KEY (tag_id) REFERENCES dtb_tag (id) ON DELETE RESTRICT ON UPDATE RESTRICT;

EC-CUBE 商品画像の保存場所

EC-CUBEの商品画像は、以下のパスに保存されます。

/html/upload/save_image/

EC-CUBE 管理画面からアップした画像ディレクトリのパス

EC-CUBEの管理画面からアップロードした画像は、user_data内に格納されます。

/html/user_data/assets/

2023-04-21
  • ec-cube