マスター系テーブル
概要
システム全体で使用する共通マスターデータを管理するテーブル群。
マスターテーブルの管理方針
基本原則
- システム全体で共有: 複数の機能・モジュールで使用される静的なデータ
- 管理画面で設定: 管理者が設定・変更可能
- 論理削除なし:
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): 重量、長さ等の単位管理
設計ガイドライン
マスターテーブルの作成基準
以下の条件を満たす場合、マスターテーブルとして作成を検討:
- 複数機能で共有: 商品、注文、決済など複数の機能で使用される
- 静的データ: 頻繁に変更されない(設定的な情報)
- コード管理: ISO規格や業界標準のコード値を保持
- 選択肢: ユーザーが選択する選択肢として使用される
マスターテーブルの命名規則
- 複数形:
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で削除を防止