# データベース設計書

## 概要

本ドキュメントは、Shopware 6 プラットフォームのデータベース設計を記載したものです。Shopwareは、PHPで構築されたエンタープライズ向けeコマースプラットフォームであり、Symfony Framework上で動作します。データベースレイヤーは、独自のData Abstraction Layer（DAL）を通じて管理され、EntityDefinitionクラスによってテーブル構造が定義されています。

## テーブル一覧

### コアシステムテーブル

| テーブル名 | 対応エンティティ | 説明 |
| --- | --- | --- |
| plugin | PluginDefinition | プラグイン管理テーブル |
| migration | - | マイグレーション履歴管理テーブル |
| user | UserDefinition | 管理者ユーザー情報テーブル |
| sales_channel | SalesChannelDefinition | 販売チャネル設定テーブル |
| language | LanguageDefinition | 言語マスタテーブル |
| locale | LocaleDefinition | ロケール設定テーブル |
| currency | CurrencyDefinition | 通貨マスタテーブル |
| country | CountryDefinition | 国マスタテーブル |
| tax | TaxDefinition | 税率設定テーブル |

### 商品関連テーブル

| テーブル名 | 対応エンティティ | 説明 |
| --- | --- | --- |
| product | ProductDefinition | 商品情報テーブル |
| product_translation | ProductTranslationDefinition | 商品翻訳テーブル |
| product_media | ProductMediaDefinition | 商品メディア関連テーブル |
| product_price | ProductPriceDefinition | 商品価格テーブル |
| product_category | ProductCategoryDefinition | 商品カテゴリ関連テーブル |
| product_manufacturer | ProductManufacturerDefinition | 商品製造者テーブル |
| product_review | ProductReviewDefinition | 商品レビューテーブル |
| product_visibility | ProductVisibilityDefinition | 商品表示設定テーブル |
| product_tag | ProductTagDefinition | 商品タグ関連テーブル |
| product_property | ProductPropertyDefinition | 商品プロパティ関連テーブル |
| product_option | ProductOptionDefinition | 商品オプション関連テーブル |

### カテゴリ関連テーブル

| テーブル名 | 対応エンティティ | 説明 |
| --- | --- | --- |
| category | CategoryDefinition | カテゴリ情報テーブル |
| category_translation | CategoryTranslationDefinition | カテゴリ翻訳テーブル |
| category_tag | CategoryTagDefinition | カテゴリタグ関連テーブル |

### 顧客関連テーブル

| テーブル名 | 対応エンティティ | 説明 |
| --- | --- | --- |
| customer | CustomerDefinition | 顧客情報テーブル |
| customer_address | CustomerAddressDefinition | 顧客住所テーブル |
| customer_group | CustomerGroupDefinition | 顧客グループテーブル |
| customer_tag | CustomerTagDefinition | 顧客タグ関連テーブル |
| customer_recovery | CustomerRecoveryDefinition | 顧客パスワードリカバリテーブル |
| customer_wishlist | CustomerWishlistDefinition | 顧客ウィッシュリストテーブル |

### 注文関連テーブル

| テーブル名 | 対応エンティティ | 説明 |
| --- | --- | --- |
| order | OrderDefinition | 注文情報テーブル |
| order_customer | OrderCustomerDefinition | 注文顧客情報テーブル |
| order_address | OrderAddressDefinition | 注文住所テーブル |
| order_line_item | OrderLineItemDefinition | 注文明細テーブル |
| order_delivery | OrderDeliveryDefinition | 注文配送情報テーブル |
| order_transaction | OrderTransactionDefinition | 注文取引テーブル |
| order_tag | OrderTagDefinition | 注文タグ関連テーブル |

### メディア関連テーブル

| テーブル名 | 対応エンティティ | 説明 |
| --- | --- | --- |
| media | MediaDefinition | メディアファイル情報テーブル |
| media_folder | MediaFolderDefinition | メディアフォルダテーブル |
| media_thumbnail | MediaThumbnailDefinition | メディアサムネイルテーブル |
| media_translation | MediaTranslationDefinition | メディア翻訳テーブル |
| media_tag | MediaTagDefinition | メディアタグ関連テーブル |

### プロモーション関連テーブル

| テーブル名 | 対応エンティティ | 説明 |
| --- | --- | --- |
| promotion | PromotionDefinition | プロモーション情報テーブル |
| promotion_discount | PromotionDiscountDefinition | プロモーション割引テーブル |
| promotion_sales_channel | PromotionSalesChannelDefinition | プロモーション販売チャネル関連テーブル |
| promotion_individual_code | PromotionIndividualCodeDefinition | プロモーション個別コードテーブル |

## 各テーブル定義

### 1 plugin

プラグインの管理情報を格納するテーブルです。Shopwareのプラグインシステムにおいて、インストール済みプラグインのメタデータを管理します。

| カラム名 | データ型 | NULL | 説明 |
| --- | --- | --- | --- |
| id | BINARY(16) | NO | プラグインの一意識別子（UUID） |
| name | VARCHAR(255) | NO | プラグインの一意名称 |
| base_class | VARCHAR(255) | NO | Shopwareの抽象Pluginクラスを継承する新しいクラス名 |
| composer_name | VARCHAR(255) | YES | Composerパッケージ名 |
| active | TINYINT(1) | NO | プラグインの有効状態（デフォルト: 0） |
| managed_by_composer | TINYINT(1) | NO | Composerによるインストール有無（デフォルト: 0） |
| path | VARCHAR(255) | YES | プラグインへの相対パス |
| autoload | JSON | NO | オートロード設定（JSON形式） |
| author | VARCHAR(255) | YES | プラグイン作成者 |
| copyright | VARCHAR(255) | YES | 著作権情報 |
| license | VARCHAR(255) | YES | ソフトウェアライセンス（MIT等） |
| version | VARCHAR(255) | NO | プラグインバージョン |
| upgrade_version | VARCHAR(255) | YES | アップグレード可能バージョン |
| icon | MEDIUMBLOB | YES | プラグインアイコン |
| installed_at | DATETIME(3) | YES | インストール日時 |
| upgraded_at | DATETIME(3) | YES | アップグレード日時 |
| created_at | DATETIME(3) | NO | レコード作成日時 |
| updated_at | DATETIME(3) | YES | レコード更新日時 |

### 2 migration

データベースマイグレーションの履歴を管理するテーブルです。

| カラム名 | データ型 | NULL | 説明 |
| --- | --- | --- | --- |
| class | VARCHAR(255) | NO | マイグレーションクラス名（主キー） |
| creation_timestamp | INT(8) | NO | マイグレーション作成タイムスタンプ |
| update | TIMESTAMP(6) | YES | 更新マイグレーション実行日時 |
| update_destructive | TIMESTAMP(6) | YES | 破壊的更新マイグレーション実行日時 |
| message | TEXT | YES | マイグレーションメッセージ |

### 3 product

商品情報を格納するメインテーブルです。バリアント商品の親子関係や継承機能をサポートしています。

| カラム名 | データ型 | NULL | 説明 |
| --- | --- | --- | --- |
| id | BINARY(16) | NO | 商品の一意識別子（UUID） |
| version_id | BINARY(16) | NO | バージョン識別子 |
| parent_id | BINARY(16) | YES | 親商品ID（バリアント用） |
| parent_version_id | BINARY(16) | NO | 親商品バージョンID |
| product_manufacturer_id | BINARY(16) | YES | 製造者ID（継承可能） |
| product_manufacturer_version_id | BINARY(16) | NO | 製造者バージョンID |
| unit_id | BINARY(16) | YES | 単位ID（継承可能） |
| tax_id | BINARY(16) | NO | 税ID（必須、継承可能） |
| product_media_id | BINARY(16) | YES | カバー画像のメディアID（継承可能） |
| product_media_version_id | BINARY(16) | NO | カバー画像バージョンID |
| delivery_time_id | BINARY(16) | YES | 配送時間ID（継承可能） |
| product_feature_set_id | BINARY(16) | YES | 機能セットID（継承可能） |
| canonical_product_id | BINARY(16) | YES | 正規商品ID（継承可能） |
| canonical_product_version_id | BINARY(16) | NO | 正規商品バージョンID |
| cms_page_id | BINARY(16) | YES | CMSページID（継承可能） |
| cms_page_version_id | BINARY(16) | NO | CMSページバージョンID |
| price | JSON | NO | 価格情報（継承可能、必須） |
| product_number | VARCHAR(64) | NO | 商品番号（一意、必須） |
| restock_time | INT | YES | 再入荷時間（日数）（継承可能） |
| auto_increment | INT | NO | 自動採番ID |
| active | TINYINT(1) | NO | 有効状態（継承可能、デフォルト: true） |
| available | TINYINT(1) | NO | 在庫可用状態（書き込み保護） |
| is_closeout | TINYINT(1) | NO | 売り切れ時非表示（継承可能、デフォルト: false） |
| available_stock | INT | NO | 有効在庫数（書き込み保護） |
| stock | INT | NO | 在庫数（必須） |
| display_group | VARCHAR(255) | YES | 表示グループ（書き込み保護） |
| variant_listing_config | JSON | YES | バリアント一覧設定（継承可能） |
| variant_restrictions | JSON | YES | バリアント制限設定 |
| manufacturer_number | VARCHAR(255) | YES | 製造者番号（継承可能） |
| ean | VARCHAR(255) | YES | EAN/JANコード（継承可能） |
| purchase_steps | INT | YES | 購入単位（継承可能、デフォルト: 1） |
| max_purchase | INT | YES | 最大購入数（継承可能） |
| min_purchase | INT | YES | 最小購入数（継承可能、デフォルト: 1） |
| purchase_unit | FLOAT | YES | 購入単位量（継承可能） |
| reference_unit | FLOAT | YES | 参照単位量（継承可能） |
| shipping_free | TINYINT(1) | NO | 送料無料（継承可能、デフォルト: false） |
| purchase_prices | JSON | YES | 仕入価格（継承可能） |
| mark_as_topseller | TINYINT(1) | NO | トップセラー表示（継承可能、デフォルト: false） |
| weight | FLOAT | YES | 重量（継承可能） |
| width | FLOAT | YES | 幅（継承可能） |
| height | FLOAT | YES | 高さ（継承可能） |
| length | FLOAT | YES | 長さ（継承可能） |
| release_date | DATETIME(3) | YES | 発売日（継承可能） |
| rating_average | FLOAT | YES | 平均評価（書き込み保護、継承可能） |
| category_tree | JSON | YES | カテゴリツリー（書き込み保護、継承可能） |
| property_ids | JSON | YES | プロパティIDリスト（継承可能） |
| option_ids | JSON | YES | オプションIDリスト（継承可能） |
| stream_ids | JSON | YES | ストリームIDリスト（継承可能） |
| tag_ids | JSON | YES | タグIDリスト（継承可能） |
| category_ids | JSON | YES | カテゴリIDリスト（継承可能） |
| child_count | INT | YES | 子商品数 |
| custom_field_set_selection_active | TINYINT(1) | YES | カスタムフィールドセット選択有効（継承可能） |
| sales | INT | YES | 販売数（書き込み保護） |
| type | VARCHAR(255) | YES | 商品タイプ（physical/digital） |
| created_at | DATETIME(3) | NO | レコード作成日時 |
| updated_at | DATETIME(3) | YES | レコード更新日時 |

### 4 category

カテゴリ情報を格納するテーブルです。階層構造をサポートしています。

| カラム名 | データ型 | NULL | 説明 |
| --- | --- | --- | --- |
| id | BINARY(16) | NO | カテゴリの一意識別子（UUID） |
| version_id | BINARY(16) | NO | バージョン識別子 |
| parent_id | BINARY(16) | YES | 親カテゴリID |
| parent_version_id | BINARY(16) | NO | 親カテゴリバージョンID |
| after_category_id | BINARY(16) | YES | 配置位置指定用カテゴリID |
| after_category_version_id | BINARY(16) | NO | 配置位置指定用カテゴリバージョンID |
| media_id | BINARY(16) | YES | カテゴリメディアID |
| display_nested_products | TINYINT(1) | NO | ネストされた商品表示（必須、デフォルト: true） |
| auto_increment | INT | NO | 自動採番ID |
| level | INT | YES | カテゴリ階層レベル |
| path | LONGTEXT | YES | カテゴリパス |
| child_count | INT | YES | 子カテゴリ数 |
| type | VARCHAR(255) | NO | カテゴリタイプ（page/folder/link） |
| product_assignment_type | VARCHAR(255) | NO | 商品割当タイプ（product/product_stream） |
| visible | TINYINT(1) | YES | 表示状態 |
| active | TINYINT(1) | YES | 有効状態 |
| cms_page_id | BINARY(16) | YES | CMSページID |
| cms_page_version_id | BINARY(16) | NO | CMSページバージョンID |
| product_stream_id | BINARY(16) | YES | 商品ストリームID |
| custom_entity_type_id | BINARY(16) | YES | カスタムエンティティタイプID |
| created_at | DATETIME(3) | NO | レコード作成日時 |
| updated_at | DATETIME(3) | YES | レコード更新日時 |

### 5 customer

顧客情報を格納するテーブルです。

| カラム名 | データ型 | NULL | 説明 |
| --- | --- | --- | --- |
| id | BINARY(16) | NO | 顧客の一意識別子（UUID） |
| customer_group_id | BINARY(16) | NO | 顧客グループID（必須） |
| sales_channel_id | BINARY(16) | NO | 販売チャネルID（必須） |
| language_id | BINARY(16) | NO | 言語ID（必須） |
| last_payment_method_id | BINARY(16) | YES | 最終使用決済方法ID |
| default_billing_address_id | BINARY(16) | NO | デフォルト請求先住所ID（必須） |
| default_shipping_address_id | BINARY(16) | NO | デフォルト配送先住所ID（必須） |
| auto_increment | INT | NO | 自動採番ID |
| customer_number | VARCHAR(255) | NO | 顧客番号（必須、一意） |
| salutation_id | BINARY(16) | YES | 敬称ID |
| first_name | VARCHAR(255) | NO | 名（必須） |
| last_name | VARCHAR(255) | NO | 姓（必須） |
| company | VARCHAR(255) | YES | 会社名 |
| password | VARCHAR(1024) | YES | パスワード（ハッシュ化） |
| email | VARCHAR(254) | NO | メールアドレス（必須） |
| title | VARCHAR(100) | YES | 肩書き |
| vat_ids | JSON | YES | VAT ID |
| affiliate_code | VARCHAR(255) | YES | アフィリエイトコード |
| campaign_code | VARCHAR(255) | YES | キャンペーンコード |
| active | TINYINT(1) | YES | 有効状態 |
| double_opt_in_registration | TINYINT(1) | YES | ダブルオプトイン登録 |
| double_opt_in_email_sent_date | DATETIME(3) | YES | ダブルオプトインメール送信日時 |
| double_opt_in_confirm_date | DATETIME(3) | YES | ダブルオプトイン確認日時 |
| hash | VARCHAR(255) | YES | パスワードリカバリ用ハッシュ |
| guest | TINYINT(1) | YES | ゲストフラグ |
| first_login | DATETIME(3) | YES | 初回ログイン日時 |
| last_login | DATETIME(3) | YES | 最終ログイン日時 |
| newsletter_sales_channel_ids | JSON | YES | ニュースレター販売チャネルID |
| birthday | DATE | YES | 誕生日 |
| last_order_date | DATETIME(3) | YES | 最終注文日（書き込み保護） |
| order_count | INT | YES | 注文回数（書き込み保護） |
| order_total_amount | FLOAT | YES | 注文総額（書き込み保護） |
| review_count | INT | YES | レビュー数（書き込み保護） |
| custom_fields | JSON | YES | カスタムフィールド |
| legacy_password | VARCHAR(255) | YES | レガシーパスワード |
| legacy_encoder | VARCHAR(255) | YES | レガシーエンコーダー |
| remote_address | VARCHAR(255) | YES | リモートIPアドレス |
| tag_ids | JSON | YES | タグIDリスト |
| requested_customer_group_id | BINARY(16) | YES | 申請中顧客グループID |
| bound_sales_channel_id | BINARY(16) | YES | 紐付け販売チャネルID |
| account_type | VARCHAR(255) | NO | アカウントタイプ（private/business） |
| created_by_id | BINARY(16) | YES | 作成者ユーザーID |
| updated_by_id | BINARY(16) | YES | 更新者ユーザーID |
| created_at | DATETIME(3) | NO | レコード作成日時 |
| updated_at | DATETIME(3) | YES | レコード更新日時 |

### 6 order

注文情報を格納するメインテーブルです。

| カラム名 | データ型 | NULL | 説明 |
| --- | --- | --- | --- |
| id | BINARY(16) | NO | 注文の一意識別子（UUID） |
| version_id | BINARY(16) | NO | バージョン識別子 |
| auto_increment | INT | NO | 自動採番ID |
| order_number | VARCHAR(64) | YES | 注文番号 |
| billing_address_id | BINARY(16) | NO | 請求先住所ID（必須） |
| billing_address_version_id | BINARY(16) | NO | 請求先住所バージョンID |
| primary_order_delivery_id | BINARY(16) | YES | 主要配送ID |
| primary_order_delivery_version_id | BINARY(16) | NO | 主要配送バージョンID |
| primary_order_transaction_id | BINARY(16) | YES | 主要取引ID |
| primary_order_transaction_version_id | BINARY(16) | NO | 主要取引バージョンID |
| currency_id | BINARY(16) | NO | 通貨ID（必須） |
| language_id | BINARY(16) | NO | 言語ID（必須） |
| sales_channel_id | BINARY(16) | NO | 販売チャネルID（必須） |
| order_date_time | DATETIME(3) | NO | 注文日時（必須） |
| order_date | DATE | YES | 注文日（書き込み保護） |
| price | JSON | YES | 価格情報 |
| amount_total | FLOAT | YES | 総額（書き込み保護） |
| amount_net | FLOAT | YES | 純額（書き込み保護） |
| position_price | FLOAT | YES | 明細価格（書き込み保護） |
| tax_status | VARCHAR(255) | YES | 税ステータス（書き込み保護） |
| shipping_costs | JSON | YES | 配送費用 |
| shipping_total | FLOAT | YES | 配送費用合計（書き込み保護） |
| currency_factor | FLOAT | NO | 通貨換算レート（必須） |
| deep_link_code | VARCHAR(255) | YES | ディープリンクコード |
| affiliate_code | VARCHAR(255) | YES | アフィリエイトコード |
| campaign_code | VARCHAR(255) | YES | キャンペーンコード |
| customer_comment | LONGTEXT | YES | 顧客コメント |
| internal_comment | LONGTEXT | YES | 内部コメント |
| source | VARCHAR(255) | YES | 注文ソース |
| tax_calculation_type | VARCHAR(255) | YES | 税計算タイプ |
| state_id | BINARY(16) | NO | 注文ステートID（必須） |
| rule_ids | JSON | YES | ルールIDリスト |
| custom_fields | JSON | YES | カスタムフィールド |
| created_by_id | BINARY(16) | YES | 作成者ユーザーID |
| updated_by_id | BINARY(16) | YES | 更新者ユーザーID |
| item_rounding | JSON | NO | 明細丸め設定（必須） |
| total_rounding | JSON | NO | 合計丸め設定（必須） |
| created_at | DATETIME(3) | NO | レコード作成日時 |
| updated_at | DATETIME(3) | YES | レコード更新日時 |

### 7 sales_channel

販売チャネルの設定を格納するテーブルです。

| カラム名 | データ型 | NULL | 説明 |
| --- | --- | --- | --- |
| id | BINARY(16) | NO | 販売チャネルの一意識別子（UUID） |
| type_id | BINARY(16) | NO | タイプID（必須） |
| language_id | BINARY(16) | NO | デフォルト言語ID（必須） |
| customer_group_id | BINARY(16) | NO | 顧客グループID（必須） |
| currency_id | BINARY(16) | NO | デフォルト通貨ID（必須） |
| payment_method_id | BINARY(16) | NO | デフォルト決済方法ID（必須） |
| shipping_method_id | BINARY(16) | NO | デフォルト配送方法ID（必須） |
| country_id | BINARY(16) | NO | デフォルト国ID（必須） |
| analytics_id | BINARY(16) | YES | アナリティクスID |
| navigation_category_id | BINARY(16) | NO | ナビゲーションカテゴリID（必須） |
| navigation_category_version_id | BINARY(16) | NO | ナビゲーションカテゴリバージョンID |
| navigation_category_depth | INT | YES | ナビゲーションカテゴリ深度 |
| footer_category_id | BINARY(16) | YES | フッターカテゴリID |
| footer_category_version_id | BINARY(16) | NO | フッターカテゴリバージョンID |
| service_category_id | BINARY(16) | YES | サービスカテゴリID |
| service_category_version_id | BINARY(16) | NO | サービスカテゴリバージョンID |
| mail_header_footer_id | BINARY(16) | YES | メールヘッダー/フッターID |
| hreflang_default_domain_id | BINARY(16) | YES | hreflangデフォルトドメインID |
| measurement_units | JSON | YES | 計測単位設定 |
| short_name | VARCHAR(255) | YES | 短縮名 |
| tax_calculation_type | VARCHAR(255) | YES | 税計算タイプ（horizontal/vertical） |
| access_key | VARCHAR(255) | NO | ストアAPIアクセスキー（必須） |
| configuration | JSON | YES | 設定情報 |
| active | TINYINT(1) | YES | 有効状態 |
| hreflang_active | TINYINT(1) | YES | hreflang有効状態 |
| maintenance | TINYINT(1) | YES | メンテナンスモード |
| maintenance_ip_whitelist | JSON | YES | メンテナンスIPホワイトリスト |
| home_cms_page_id | BINARY(16) | YES | ホームCMSページID |
| home_cms_page_version_id | BINARY(16) | NO | ホームCMSページバージョンID |
| created_at | DATETIME(3) | NO | レコード作成日時 |
| updated_at | DATETIME(3) | YES | レコード更新日時 |

### 8 user

管理者ユーザー情報を格納するテーブルです。

| カラム名 | データ型 | NULL | 説明 |
| --- | --- | --- | --- |
| id | BINARY(16) | NO | ユーザーの一意識別子（UUID） |
| locale_id | BINARY(16) | NO | ロケールID（必須） |
| username | VARCHAR(255) | NO | ユーザー名（必須、一意） |
| password | VARCHAR(1024) | NO | パスワード（必須、ハッシュ化） |
| first_name | VARCHAR(255) | NO | 名（必須） |
| last_name | VARCHAR(255) | NO | 姓（必須） |
| title | VARCHAR(255) | YES | 肩書き |
| email | VARCHAR(254) | NO | メールアドレス（必須） |
| active | TINYINT(1) | YES | 有効状態 |
| admin | TINYINT(1) | YES | 管理者フラグ |
| last_updated_password_at | DATETIME(3) | YES | 最終パスワード更新日時 |
| time_zone | VARCHAR(255) | NO | タイムゾーン（必須、デフォルト: UTC） |
| custom_fields | JSON | YES | カスタムフィールド |
| avatar_id | BINARY(16) | YES | アバター画像ID |
| store_token | VARCHAR(255) | YES | ストアトークン |
| created_at | DATETIME(3) | NO | レコード作成日時 |
| updated_at | DATETIME(3) | YES | レコード更新日時 |

### 9 media

メディアファイル情報を格納するテーブルです。

| カラム名 | データ型 | NULL | 説明 |
| --- | --- | --- | --- |
| id | BINARY(16) | NO | メディアの一意識別子（UUID） |
| user_id | BINARY(16) | YES | アップロードユーザーID |
| media_folder_id | BINARY(16) | YES | メディアフォルダID |
| mime_type | VARCHAR(255) | YES | MIMEタイプ |
| file_extension | VARCHAR(255) | YES | ファイル拡張子 |
| uploaded_at | DATETIME(3) | YES | アップロード日時（書き込み保護） |
| file_name | LONGTEXT | YES | ファイル名 |
| file_size | INT | YES | ファイルサイズ（書き込み保護） |
| media_type | LONGBLOB | YES | メディアタイプ（バイナリ） |
| meta_data | JSON | YES | メタデータ（書き込み保護） |
| config | JSON | YES | 設定情報 |
| path | VARCHAR(2048) | YES | ファイルパス |
| private | TINYINT(1) | YES | プライベートフラグ |
| thumbnails_ro | LONGBLOB | YES | サムネイル情報（計算フィールド） |
| file_hash | VARCHAR(255) | YES | ファイルハッシュ（計算フィールド） |
| created_at | DATETIME(3) | NO | レコード作成日時 |
| updated_at | DATETIME(3) | YES | レコード更新日時 |

### 10 tax

税率設定を格納するテーブルです。

| カラム名 | データ型 | NULL | 説明 |
| --- | --- | --- | --- |
| id | BINARY(16) | NO | 税の一意識別子（UUID） |
| tax_rate | FLOAT | NO | 税率（必須） |
| name | VARCHAR(255) | NO | 税名称（必須） |
| position | INT | NO | 表示順序（必須、デフォルト: 0） |
| custom_fields | JSON | YES | カスタムフィールド |
| created_at | DATETIME(3) | NO | レコード作成日時 |
| updated_at | DATETIME(3) | YES | レコード更新日時 |

## 備考

### バージョニング機能

Shopware 6では、多くのエンティティでバージョニング機能をサポートしています。これは、コンテンツのドラフト作成やプレビュー機能を実現するために使用されます。バージョニングが有効なテーブルには、`version_id`カラムと関連する`*_version_id`カラムが存在します。

### 継承機能（Inheritance）

商品テーブルなどでは、バリアント商品が親商品から値を継承できる仕組みがあります。`Inherited`フラグが設定されたフィールドは、子エンティティで値がnullの場合に親の値を使用します。

### 翻訳機能

多くのエンティティには翻訳テーブル（`*_translation`）が存在し、多言語対応を実現しています。`TranslatedField`として定義されたフィールドは、翻訳テーブルに実際のデータが格納されます。

### Data Abstraction Layer（DAL）

Shopwareのデータアクセスは、EntityDefinitionクラスを通じて抽象化されています。これにより、ORMのような機能を提供しながら、高いパフォーマンスと柔軟性を実現しています。

### UUIDの使用

すべての主キーには、16バイトのバイナリUUID（BINARY(16)）が使用されています。これにより、分散システムでの一意性が保証されます。
