コンテンツにスキップ

マスター系テーブル

概要

システム全体で使用する共通マスターデータを管理するテーブル群。

マスターテーブルの管理方針

基本原則

  • システム全体で共有: 複数の機能・モジュールで使用される静的なデータ
  • 管理画面で設定: 管理者が設定・変更可能
  • 論理削除なし: is_activeフラグで有効/無効を管理
  • 参照整合性: 他のテーブルから外部キー参照される

マスターテーブルの特徴

  • 静的データ: 頻繁に変更されない情報
  • コード値: ISO規格やシステム標準のコード値を保持
  • 表示順序: sort_orderで表示順を制御
  • 有効フラグ: is_activeで論理的な有効/無効を管理

現在のマスターテーブル一覧

テーブル名 説明 リンク
currencies 通貨マスター currencies.md
tax_rates 税率マスター tax_rates.md
genders 性別マスター genders.md
job_masters 職業マスター jobs.md
prefectures 都道府県マスター prefectures.md
register_types レジ種別マスター register_types.md
countries 国・地域マスター countries.md

将来追加予定のマスター

  • 配送方法マスター (shipping_methods): 配送方法の管理
  • 支払方法マスター (payment_methods): 支払方法の管理
  • 単位マスター (units): 重量、長さ等の単位管理

設計ガイドライン

マスターテーブルの作成基準

以下の条件を満たす場合、マスターテーブルとして作成を検討:

  1. 複数機能で共有: 商品、注文、決済など複数の機能で使用される
  2. 静的データ: 頻繁に変更されない(設定的な情報)
  3. コード管理: ISO規格や業界標準のコード値を保持
  4. 選択肢: ユーザーが選択する選択肢として使用される

マスターテーブルの命名規則

  • 複数形: currencies, countries, payment_methods
  • プレフィックスなし: Laravel標準の命名規則に準拠
  • スネークケース: payment_methods, shipping_methods

推奨カラム構成

マスターテーブルには以下のカラムを含めることを推奨:

id              BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT
code            VARCHAR(50) UNIQUE NOT NULL           -- コード値(ISO規格等)
name            VARCHAR(255) NOT NULL                 -- 名称
is_active       BOOLEAN NOT NULL DEFAULT TRUE         -- 有効フラグ
sort_order      INT NULL DEFAULT NULL                 -- 表示順序
created_at      TIMESTAMP NULL
updated_at      TIMESTAMP NULL

削除ポリシー

  • 物理削除禁止: マスターテーブルのレコードは物理削除しない
  • 無効化: is_active = FALSEで無効化
  • 外部キー制約: ON DELETE RESTRICTで削除を防止

関連ドキュメント