Skip to content

実践データベース設計:基幹業務システム編

記事の目的

基幹業務システム(販売管理・財務会計・生産管理)のデータベース設計を、業務フローとデータモデルの観点から体系的に解説する。

対象読者

  • データベース設計の基礎を学びたいエンジニア
  • 基幹業務システムの全体像を理解したい開発者
  • 販売管理・財務会計・生産管理の業務知識を習得したい方

執筆方針

  • ダイアグラムには PlantUML を使用
  • 業務フローと ER 図を中心に解説
  • 日本語テーブル・日本語カラムでデータベースを定義
  • 実装はコード部分は<details>タグを使って表示を切り替えられるようにする
  • タスク項目などは一行開けて記述する
  • NG
      **受入条件**:
      - [ ] ログアウトボタンをクリックするとログアウトできる
      - [ ] ログアウト後、ログイン画面に遷移する
      - [ ] JWT トークンが無効化される
    
  • OK
      **受入条件**:
    
      - [ ] ログアウトボタンをクリックするとログアウトできる
      - [ ] ログアウト後、ログイン画面に遷移する
      - [ ] JWT トークンが無効化される
    

第1部:基幹業務システムの全体像

第1章:基幹業務システムとは

1.1 ドメイン駆動設計と基幹業務システム

  • 戦略的設計と戦術的設計
  • 基幹業務システムへの適用

1.2 基幹業務システムを構成するサブシステム

  • 販売管理システム
  • 財務会計システム
  • 生産管理システム
  • 人事システム

第2章:基幹業務システムの業務領域

2.1 販売管理領域

  • 受注・出荷・売上
  • 得意先との関係

2.2 購買管理領域

  • 発注・入荷/受入・仕入(検収)
  • 仕入先・委託先との関係

2.3 在庫管理領域

  • 在庫の受払
  • 販売管理・購買管理・生産管理との連携

2.4 生産管理領域

  • 生産計画・品質管理・工程管理・製造原価管理
  • 購買管理・在庫管理との連携

2.5 債権管理領域

  • 請求・入金
  • 販売管理との連携

2.6 債務管理領域

  • 支払・出金
  • 購買管理との連携

2.7 会計領域

  • 仕訳・決算
  • 債権・債務・生産管理からの仕訳連携

2.8 人事領域

  • 給与計算・人事管理
  • 会計との連携

第3章:業務フローの全体像

3.1 販売管理システムの業務フロー

  • 得意先 → 営業部門 → 販売管理
  • 販売管理 → 調達管理 / 在庫管理 / 債権管理
  • 調達管理 → 仕入先 / 在庫管理 / 債務管理

3.2 財務会計システムの業務フロー

  • 会計部門 → 財務会計 / 管理会計
  • 財務会計:債権・債務・手形・資産・経理
  • 管理会計:経営分析・損益分岐点分析・投資の経済性計算・キャッシュフロー計算

3.3 生産管理システムの業務フロー

  • 得意先 → 営業部門 → 生産計画
  • 生産計画 → 購買管理 / 工程管理
  • 購買管理 → 仕入先 / 委託先 / 在庫管理
  • 工程管理 → 在庫管理 / 製造原価管理 / 品質管理
  • 基準情報との連携

第2部:販売管理システム

第4章:販売管理システムの全体像

4.1 販売管理システムのスコープ

  • 見積
  • 受注
  • 出荷
  • 売上

4.2 販売組織の役割分担

  • 営業部門・調達部門・倉庫部門・経理部門・財務部門
  • 業務フローと各部門の責務

4.3 販売管理システムのアーキテクチャ

  • プロジェクト構成
  • Domain層(ドメイン層)
    • model(ドメインモデル)
    • type(基本型:通貨、単位、数量等)
    • exception(ドメイン例外)
  • Application層(アプリケーション層)
    • port/in(Input Port)
    • port/out(Output Port)
    • service(Application Service)
  • Infrastructure層(インフラストラクチャ層)
    • in/rest(Input Adapter - REST API)
    • out/persistence(Output Adapter - 永続化)
    • config(設定)
  • ヘキサゴナルアーキテクチャ(ポート&アダプター)
  • ドメイン(中心)
  • ポート(入力ポート・出力ポート)
  • アダプター(プライマリ・セカンダリ)
  • 依存性の方向と依存性逆転の原則
  • ドメイン駆動設計の適用
  • 集約とリポジトリ
  • ドメインサービス
  • アプリケーションサービス
  • API 設計
  • RESTful API の基本方針
  • エンドポイント設計

第5章:マスタ情報の設計

5.1 部門マスタの設計

  • 組織階層と部門パス
  • 最下層区分の管理
  • 組織改正に強いマスタ設計(履歴管理)
  • 複数組織図と所在地の対応

5.2 社員マスタの設計

  • 部門との関連付け
  • 適用期間を持つ履歴管理

5.3 商品マスタの設計

  • 商品コード・商品名・単価
  • 商品区分と税区分
  • 商品分類の階層構造(商品分類パス)
  • 顧客別販売単価の管理

5.4 原価管理の設計

  • 8種類の原価法の理解
  • 個別原価法
  • 先入先出法
  • 後入先出法
  • 総平均法
  • 移動平均法
  • 単純平均法
  • 最終仕入原価法
  • 売価還元法

5.5 消費税の設計

  • 外税・内税・非課税の区分
  • 消費税計算の考え方

5.6 顧客マスタの設計

  • 取引先コードと顧客枝番
  • 請求先・回収先の概念
  • 出荷先マスタとの連携
  • 地域マスタによる分類

5.7 取引条件の設計

  • 締日・支払月・支払日の管理
  • 都度請求と締め請求の違い
  • 与信管理(与信限度額・一時増加枠)

第6章:受注・出荷・売上の設計

6.1 受注業務の DB 設計

  • 受注業務フローの理解
  • 受注データ・受注明細データの構造
  • 顧客マスタ・商品マスタとの連携

6.2 出荷業務の DB 設計

  • 出荷業務の流れ
  • 出荷指示データ・出荷明細データ
  • 在庫との連携

6.3 売上業務の DB 設計

  • 売上データ・売上明細データの構造
  • 出荷完了から売上計上への流れ
  • 返品処理の設計
  • 赤黒処理の考え方

6.4 リレーションと楽観ロックの設計

  • MyBatis ネストした ResultMap によるリレーション設定
  • ヘッダ・明細の一括取得(JOIN クエリ)
  • 楽観ロック(Optimistic Locking)の実装
  • バージョンカラムによる同時更新制御

第7章:債権管理の設計

7.1 請求業務の DB 設計

  • 都度請求と締め請求
  • 請求データ・請求明細の構造
  • 締処理の設計

7.2 回収業務の DB 設計

  • 入金方法の種類(現金・振込・手形等)
  • 入金データ・入金明細の構造
  • 入金消込の処理
  • 債権残高管理

7.3 リレーションと楽観ロックの設計

  • MyBatis ネストした ResultMap によるリレーション設定
  • ヘッダ・明細の一括取得(JOIN クエリ)
  • 楽観ロック(Optimistic Locking)の実装
  • バージョンカラムによる同時更新制御

第8章:調達管理の設計

8.1 発注業務の DB 設計

  • 調達の4つのパターン
  • 発注データ・発注明細データの構造
  • 仕入先マスタとの連携

8.2 入荷・検収業務の DB 設計

  • 入荷データの構造
  • 検収(仕入計上)処理
  • 諸口品目の扱い

8.3 リレーションと楽観ロックの設計

  • MyBatis ネストした ResultMap によるリレーション設定
  • ヘッダ・明細の一括取得(JOIN クエリ)
  • 楽観ロック(Optimistic Locking)の実装
  • バージョンカラムによる同時更新制御

第9章:在庫管理の設計

9.1 在庫情報の DB 設計

  • 倉庫コード × 商品コードの在庫管理
  • 在庫数量・引当数量の管理
  • 倉庫マスタの設計

9.2 在庫移動・棚卸の DB 設計

  • 入出庫履歴の管理
  • 棚卸業務の設計
  • 在庫調整処理

9.3 リレーションと楽観ロックの設計

  • MyBatis ネストした ResultMap によるリレーション設定
  • ヘッダ・明細の一括取得(JOIN クエリ)
  • 楽観ロック(Optimistic Locking)の実装
  • バージョンカラムによる同時更新制御

第10章:債務管理の設計

10.1 支払業務の DB 設計

  • 支払締処理
  • 支払方法の種類
  • 支払データ・支払明細の構造
  • 買掛金残高管理

10.2 リレーションと楽観ロックの設計

  • MyBatis ネストした ResultMap によるリレーション設定
  • ヘッダ・明細の一括取得(JOIN クエリ)
  • 楽観ロック(Optimistic Locking)の実装
  • バージョンカラムによる同時更新制御

第11章:共通処理の設計

11.1 赤黒処理の設計

  • 赤黒処理とは(確定済み伝票の訂正方法)
  • 赤伝票(マイナス計上)と黒伝票(プラス計上)
  • 赤黒処理履歴テーブルのスキーマ設計
  • 赤黒処理サービスの実装

11.2 自動採番の設計

  • 採番の要件(一意性・連番性・可読性・拡張性)
  • 採番パターン(年次・月次・日次・連番)
  • 採番マスタと採番履歴テーブルの設計
  • 採番サービスの実装

11.3 監査カラムの設計

  • 監査カラムとは(作成日時・作成者・更新日時・更新者)
  • 論理削除(削除フラグ・削除日時・削除者)
  • 監査カラム用エンティティ基底クラス
  • MyBatis インターセプターによる自動設定

11.4 履歴テーブルの設計

  • 履歴管理の種類(変更履歴・スナップショット・イベントソーシング)
  • 変更履歴テーブル(JSONB による変更前後保存)
  • マスタ履歴テーブル(適用期間による履歴管理)
  • 履歴サービスの実装

第12章:販売管理データ設計(B 社事例)

12.1 B 社の概要

  • 会社プロファイル(食肉・食肉加工品の製造・販売業)
  • 沿革と事業環境
  • 事業の特徴(高品質商品・対面販売・多様な販路・自社製造・OEM 対応)

12.2 組織構成

  • 組織図(食肉製造・販売事業、食肉加工品事業、コンサルティング事業)
  • 部門マスタの階層構造
  • 社員の配置(正社員 24 名、パート 21 名)

12.3 ビジネスモデル

  • ビジネスモデルキャンバス
  • 得意先の分類(百貨店・スーパー・ホテル・飲食店・観光施設)
  • 仕入先の分類(食肉卸・畜産業者)
  • 商品構成(牛肉・豚肉・鶏肉・加工品)

12.4 データ構造の設計

  • マスタデータの構成
  • 商品コード体系(BEEF-/PORK-/CHKN-/PROC-)
  • 取引先コード体系(CUS-/SUP-)
  • Enum の日本語・英語マッピング

12.5 Seed データの実装

  • 実装方針(外部キー制約・複合キー・日本語テーブル名)
  • MasterDataSeeder の実装
  • TransactionDataSeeder の実装
  • データの検証と活用

第13章:API サービスの実装

13.1 ヘキサゴナルアーキテクチャの復習

  • Ports and Adapters パターンの概要
  • ドメイン中心設計
  • 依存性の逆転
  • テスト容易性

13.2 アーキテクチャ構造

  • Domain 層(ビジネスルールとドメインモデル)
  • Application 層(ユースケースの実装)
  • Infrastructure 層(外部技術との接続)
  • Input Port / Output Port の分離
  • 各レイヤーの責務

13.3 マスタ API の実装

  • 商品マスタ API(CRUD エンドポイント)
  • TDD による実装(Red-Green-Refactor)
  • Controller・Service・Repository の実装
  • 顧客マスタ API(請求先・回収先の管理)

13.4 トランザクション API の実装

  • 受注 API(受注登録・受注照会・受注明細照会)
  • 出荷 API(出荷指示・出荷確定)
  • 売上 API(売上計上・売上照会)
  • 請求・入金 API(請求締め・入金消込)

13.5 エラーハンドリング

  • グローバル例外ハンドラー(@RestControllerAdvice)
  • ドメイン例外の定義と変換
  • ProblemDetail によるエラーレスポンス
  • バリデーションエラーの処理

13.6 API ドキュメント

  • OpenAPI / Swagger の設定
  • エンドポイントの文書化
  • リクエスト・レスポンスのスキーマ定義

13.7 API インテグレーションテスト

  • テストコンテナによる統合テスト環境
  • REST API エンドポイントのテスト
  • データベース状態の検証
  • テストデータのセットアップとクリーンアップ

第3部:財務会計システム

第14章:財務会計システムの全体像

14.1 財務会計システムのスコープ

  • 債権管理(請求・入金)
  • 債務管理(支払・出金)
  • 経理(仕訳・決算)

14.2 財務会計と管理会計の違い

  • 財務会計:外部報告目的
  • 管理会計:内部意思決定目的

14.3 財務会計システムのアーキテクチャ

  • プロジェクト構成
  • Domain層(ドメイン層)
    • model(ドメインモデル)
    • type(基本型:通貨、単位、数量等)
    • exception(ドメイン例外)
  • Application層(アプリケーション層)
    • port/in(Input Port)
    • port/out(Output Port)
    • service(Application Service)
  • Infrastructure層(インフラストラクチャ層)
    • in/rest(Input Adapter - REST API)
    • out/persistence(Output Adapter - 永続化)
    • config(設定)
  • ヘキサゴナルアーキテクチャ(ポート&アダプター)
  • ドメイン(中心)
  • ポート(入力ポート・出力ポート)
  • アダプター(プライマリ・セカンダリ)
  • 依存性の方向と依存性逆転の原則
  • ドメイン駆動設計の適用
  • 集約とリポジトリ
  • ドメインサービス
  • アプリケーションサービス
  • API 設計
  • RESTful API の基本方針
  • エンドポイント設計

第15章:勘定科目の設計

15.1 勘定科目マスタの設計

  • 勘定科目コード・勘定科目名
  • BSPL 区分(貸借対照表 / 損益計算書)
  • 貸借区分(借方 / 貸方)
  • 取引要素区分(資産・負債・資本・収益・費用)
  • 集計区分(見出科目・集計科目・明細科目)
  • 管理会計区分・費用区分
  • 補助科目種別
  • 消費税計算区分・課税取引コード
  • 期日管理区分

15.2 勘定科目構成マスタの設計

  • チルダ連結方式による階層構造
  • 貸借対照表の科目ツリー構造
  • 科目残高集計の考え方

15.3 課税取引マスタの設計

  • 課税取引コード・税率の管理

第16章:仕訳の設計

16.1 仕訳テーブルの設計

  • 仕訳伝票番号・起票日・入力日
  • 決算仕訳フラグ・単複フラグ
  • 仕訳伝票区分
  • 部門コード・社員コード
  • 赤伝フラグ・赤黒伝票番号

16.2 仕訳明細の設計

  • 仕訳行番号・行摘要

16.3 仕訳貸借明細の設計

  • 貸借区分(借方 / 貸方)
  • 勘定科目コード・補助科目コード
  • 仕訳金額・基軸換算仕訳金額
  • 通貨コード・為替レート
  • 部門コード・プロジェクトコード・セグメントコード
  • 消費税区分・消費税率・消費税計算区分
  • 期日・資金繰フラグ
  • 相手勘定科目・相手補助科目
  • 付箋コード・付箋内容

第17章:自動仕訳の設計

17.1 自動仕訳の概要

  • 販売管理システムと会計システムの連携
  • 手入力による非連携(アナログ連携)の課題
  • 自動仕訳処理のデータフロー

17.2 自動仕訳パターンマスタの設計

  • 商品グループ × 顧客グループによる条件分岐
  • 借方科目・貸方科目の自動判定
  • 売上返品時の科目設定

17.3 自動仕訳処理の設計

  • フラグ管理方式と日付管理方式
  • セット中心のアプリケーション設計
  • ループ処理との比較

17.4 売上伝票から仕訳伝票への転記ロジック

  • 明細行の分解と集約
  • 借方(売掛金)と貸方(売上)の展開
  • 消費税の按分計算
  • 貸借一致の原則

第18章:勘定科目残高の設計

18.1 日次勘定科目残高の設計

  • 起票日 × 勘定科目 × 補助科目 × 部門 × プロジェクト
  • 借方金額・貸方金額
  • 日計表の出力

18.2 月次勘定科目残高の設計

  • 決算期 × 月度による管理
  • 月初残高・月末残高
  • 合計残高試算表の出力

18.3 残高更新のタイミング

  • 仕訳入力時の即時更新
  • バッチ処理による集計

第19章:赤黒とログの設計

19.1 3つのアプローチ

  • データ自体にログ情報を持つ方式
  • 赤黒処理・論理削除方式
  • ログテーブルにログ情報を保存する方式

19.2 業務システムでの使い分け

  • 会計絡みは赤黒処理
  • マスタ関連はログテーブル
  • それ以外はデータ自体にログ

第20章:財務会計データ設計(D 社事例)

20.1 D 社の概要

  • 会社プロファイル(化粧品製造販売)
  • 企業概要(資本金 5 億円、従業員 300 名、年間売上高 80 億円)
  • 決算期(3 月期)
  • 経理体制(経理部 10 名、財務課 3 名)

20.2 組織構成

  • 組織図(営業本部・製造本部・管理本部・研究開発本部)
  • 部門マスタの階層構造
  • 部門コード体系

20.3 勘定科目体系

  • 勘定科目の構成(資産・負債・純資産・収益・費用)
  • 勘定科目コード体系
  • 補助科目の設計

20.4 Seed データの実装

  • マスタデータの構成(勘定科目・部門・社員)
  • 仕訳サンプルデータの作成
  • データの検証と活用

第21章:API サービスの実装

21.1 ヘキサゴナルアーキテクチャの復習

  • Ports and Adapters パターンの概要
  • ドメイン中心設計
  • 依存性の逆転
  • テスト容易性

21.2 アーキテクチャ構造

  • Domain 層(ビジネスルールとドメインモデル)
  • Application 層(ユースケースの実装)
  • Infrastructure 層(外部技術との接続)
  • Input Port / Output Port の分離
  • 各レイヤーの責務

21.3 マスタ API の実装

  • 勘定科目マスタ API(CRUD エンドポイント)
  • TDD による実装(Red-Green-Refactor)
  • Controller・Service・Repository の実装
  • 補助科目マスタ API(勘定科目との関連)

21.4 トランザクション API の実装

  • 仕訳 API(仕訳登録・照会・貸借一致バリデーション)
  • 残高照会 API(日次残高・月次残高)
  • 試算表 API(合計残高試算表の出力)
  • 部門別・プロジェクト別の残高照会

21.5 エラーハンドリング

  • グローバル例外ハンドラー(@RestControllerAdvice)
  • ドメイン例外の定義と変換
  • ProblemDetail によるエラーレスポンス
  • バリデーションエラーの処理

21.6 API ドキュメント

  • OpenAPI / Swagger の設定
  • エンドポイントの文書化
  • リクエスト・レスポンスのスキーマ定義

21.7 API インテグレーションテスト

  • テストコンテナによる統合テスト環境
  • REST API エンドポイントのテスト
  • データベース状態の検証
  • テストデータのセットアップとクリーンアップ

第4部:生産管理システム

第22章:生産管理システムの全体像

22.1 生産管理システムのスコープ

  • 生産計画(MPS・MRP)
  • 購買管理(発注・入荷・検収)
  • 工程管理(製造指示・製造実績)
  • 在庫管理(受払・在庫状態)
  • 品質管理(受入検査・出荷検査・トレーサビリティ)
  • 製造原価管理(標準原価・実際原価・配賦)

22.2 生産組織の役割分担

  • 営業部・生産管理部・製造部・購買部・外注部
  • 資材倉庫・製品倉庫
  • 業務フローと各部門の責務

22.3 生産管理システムのアーキテクチャ

  • プロジェクト構成
  • Domain層(ドメイン層)
    • model(ドメインモデル)
    • type(基本型:通貨、単位、数量等)
    • exception(ドメイン例外)
  • Application層(アプリケーション層)
    • port/in(Input Port)
    • port/out(Output Port)
    • service(Application Service)
  • Infrastructure層(インフラストラクチャ層)
    • in/rest(Input Adapter - REST API)
    • out/persistence(Output Adapter - 永続化)
    • config(設定)
  • ヘキサゴナルアーキテクチャ(ポート&アダプター)
  • ドメイン(中心)
  • ポート(入力ポート・出力ポート)
  • アダプター(プライマリ・セカンダリ)
  • 依存性の方向と依存性逆転の原則
  • ドメイン駆動設計の適用
  • 集約とリポジトリ
  • ドメインサービス
  • アプリケーションサービス
  • API 設計
  • RESTful API の基本方針
  • エンドポイント設計

第23章:マスタ情報の設計

23.1 品目マスタの設計

  • 品目コード・品名
  • 品目区分(製品・半製品・中間品・部品・材料・原料・資材)
  • 品目グループコード
  • 単位コード・場所コード
  • リードタイム・安全リードタイム・安全在庫数
  • 歩留率・最小ロット数・刻みロット数・最大ロット数
  • 有効期間(世代管理)

23.2 BOM(部品構成表)の設計

  • 親品目コード × 子品目コード
  • 基準量・必要量・不良率
  • 工順
  • 適用期間(開始日・停止日)
  • 再帰 CTE による BOM 展開

23.3 補助マスタの設計

  • カレンダマスタ(就業日・就業時間・シフト)
  • 場所マスタ(場所コード・場所種類)
  • 倉庫マスタ(倉庫コード・倉庫区分)
  • 部門マスタ(部門コード・部門階層)
  • 担当者マスタ(担当者コード・部門・適用期間)
  • 資源マスタ(資源コード・資源名・部門との関連)
  • 取引先マスタ(取引先コード・連絡先・就業日パターン)
  • 工程マスタ(工程コード・工程名)
  • 工程表(品目コード × 工順 × 工程コード)
  • 単価マスタ(品目 × 取引先 × ロット単位数 × 適用期間)

第24章:生産計画の設計

24.1 生産計画の特徴

  • 計画系と実績系の分離
  • バリエーションの豊富さ
  • 計画系の流れ(ビジネスプラン → 販売計画 → 生産計画 → MPS → MRP)

24.2 MRP(所要量展開)

  • 総所要量・正味所要量の計算
  • ロットまとめ(最小ロット・刻みロット・最大ロット)
  • オーダ情報の構造
  • 所要情報の構造
  • 引当情報の構造
  • 在庫推移・発注残・製造残との連携

第25章:購買管理の設計

25.1 発注業務の DB 設計

  • 発注データ・発注明細データの構造
  • オーダ情報・場所マスタ・単価マスタとの連携
  • 諸口品目の扱い
  • 納期管理・分納対応

25.2 入荷・検収業務の DB 設計

  • 入荷受入データの構造
  • 発注明細との紐付け
  • 入荷受入区分(入荷 / 受入返品)
  • 受入検査データの構造
  • 受入検査結果データ(欠点コード・数量)
  • 欠点マスタの設計
  • 検収データの構造
  • 検収単価・検収金額・消費税
  • 検収返品データの構造
  • 在庫計上処理

第26章:外注委託管理の設計

26.1 外注委託業務の理解

  • 外注委託とは(専門加工・生産能力補完・コスト最適化)
  • 有償支給と無償支給
  • 外注委託の業務フロー

26.2 外注委託の DB 設計

  • 外注オーダの構造
  • 支給データ・支給明細データの構造
  • 発注データとの紐付け
  • 支給金額の計算(有償支給の場合)

26.3 消費業務の設計

  • 消費データ・消費明細データの構造
  • 入荷受入データとの紐付け
  • 消費率の計算

26.4 外注委託ワークフロー

  • 発注作成 → 支給品出荷 → 加工 → 入荷 → 検収 → 消費記録
  • 有償支給と無償支給の会計処理の違い

第27章:工程管理の設計

27.1 製造指示の DB 設計

  • 工程管理業務の流れ
  • 作業指示データの構造
  • 作業指示明細データ(工順・工程コード)
  • オーダ情報・工程表との連携
  • 作業指示書とピッキングリスト

27.2 製造実績の DB 設計

  • 完成実績データの構造
  • 完成数量・良品数・不良品数
  • 完成検査結果データ(欠点コード)
  • 消費実績データ・消費明細データ
  • 場所コードとの紐付け
  • 工数実績データの構造
  • 作業指示明細との紐付け
  • 担当者・部門・工数の記録

27.3 進捗管理

  • 工程別進捗の管理
  • 遅延アラートの設計
  • 進捗状況の可視化

第28章:在庫管理の設計

28.1 在庫情報の DB 設計

  • 場所コード × 品目コード
  • 在庫数・合格数・不良数・未検査数
  • ロケーション管理

28.2 払出業務の DB 設計

  • 払出指示データ・払出指示明細データ
  • オーダ情報・BOM との連携
  • 払出データ・払出明細データの構造
  • 支給データとの統合
  • 払出区分(自社 / 外注)
  • 計画区分(計画 / 計画外)

28.3 棚卸業務の DB 設計

  • 棚卸表発行・実棚入力
  • 帳簿在庫と実棚在庫の差異分析
  • 在庫調整データの構造

第29章:品質管理の設計

29.1 品質管理の概要

  • 品質管理の目的と重要性
  • 検査の種類と位置づけ

29.2 受入検査・工程検査・出荷検査

  • 受入検査の設計(購買品の品質確認)
  • 工程検査の設計(製造中の品質確認)
  • 出荷検査の設計(出荷前の品質確認)
  • トレーサビリティ(ロット追跡・履歴管理)

第30章:製造原価管理の設計

30.1 原価計算の概要

  • 標準原価と実際原価
  • 原価差異分析

30.2 材料費・労務費・製造間接費

  • 材料費の計算(直接材料費・間接材料費)
  • 労務費の計算(直接労務費・間接労務費)
  • 製造間接費の配賦
  • 製品原価の集計

第31章:生産管理データ設計(E 社事例)

31.1 E 社の概要

  • 会社プロファイル(精密機械部品製造業)
  • 企業概要(従業員約 50 名)
  • 生産の特徴(多品種少量・受注生産型)
  • 外注活用(メッキ処理・熱処理)

31.2 組織構成

  • 組織図(営業部・生産管理部・製造部・品質管理部・購買部・倉庫部・外注管理部)
  • 部門マスタの階層構造
  • 担当者の配置

31.3 データ構造の設計

  • 品目コード体系(PROD-/SEMI-/PART-/MAT-)
  • 取引先コード体系(SUP-/OUT-/CUS-)
  • 工程コード体系(LATHE/MILL/GRIND/DRILL/HEAT/PLAT/ASSY/INSP)
  • BOM 階層(製品→半製品→部品→材料)
  • Enum の日本語・英語マッピング

31.4 Seed データの実装

  • 実装方針(外部キー制約・複合キー・日本語テーブル名)
  • SeedDataService の設計
  • MasterDataSeeder の実装(部門・担当者・品目・BOM・工程・取引先・単価)
  • TransactionDataSeeder の実装(発注・入荷・作業指示・完成実績・在庫)

31.5 データの検証と活用

  • データの整合性確認(BOM 展開・在庫残高・発注残)
  • サンプルデータの活用方法
  • テストシナリオへの応用

第32章:API サービスの実装

32.1 ヘキサゴナルアーキテクチャの復習

  • Ports and Adapters パターンの概要
  • ドメイン中心設計
  • 依存性の逆転
  • テスト容易性

32.2 アーキテクチャ構造

  • Domain 層(ビジネスルールとドメインモデル)
  • Application 層(ユースケースの実装)
  • Infrastructure 層(外部技術との接続)
  • Input Port / Output Port の分離
  • 各レイヤーの責務

32.3 マスタ API の実装

  • 品目マスタ API(CRUD エンドポイント)
  • TDD による実装(Red-Green-Refactor)
  • Controller・Service・Repository の実装
  • BOM マスタ API(部品展開・使用先照会)

32.4 トランザクション API の実装

  • 発注 API(発注登録・発注照会・発注明細照会)
  • 在庫照会 API(在庫残高照会・在庫推移照会)
  • 作業指示 API(作業指示登録・進捗更新)
  • MRP 実行 API(所要量計算・発注提案生成)

32.5 エラーハンドリング

  • グローバル例外ハンドラー(@RestControllerAdvice)
  • ドメイン例外の定義と変換
  • ProblemDetail によるエラーレスポンス
  • バリデーションエラーの処理

32.6 API ドキュメント

  • OpenAPI / Swagger の設定
  • エンドポイントの文書化
  • リクエスト・レスポンスのスキーマ定義

32.7 API インテグレーションテスト

  • テストコンテナによる統合テスト環境
  • REST API エンドポイントのテスト
  • データベース状態の検証
  • テストデータのセットアップとクリーンアップ

第5部:エンタープライズインテグレーション

第33章:システム統合の概要

33.1 なぜシステム統合が必要か

  • サイロ化した基幹業務システムの課題
  • データの一貫性と整合性の確保
  • リアルタイム連携とバッチ連携

33.2 境界付けられたコンテキスト

  • 境界付けられたコンテキスト(Bounded Context)とは
  • 基幹業務システムにおけるコンテキストの識別
  • 販売コンテキスト
  • 会計コンテキスト
  • 生産コンテキスト
  • コンテキストマップの作成
  • コンテキスト間の関係パターン
  • 共有カーネル(Shared Kernel)
  • 顧客/供給者(Customer/Supplier)
  • 適合者(Conformist)
  • 腐敗防止層(Anti-Corruption Layer)
  • 公開ホストサービス(Open Host Service)
  • 公表された言語(Published Language)

33.3 統合パターンの選択基準

  • 同期 vs 非同期
  • ポイントツーポイント vs ハブ&スポーク
  • データ統合 vs プロセス統合

第34章:メッセージングパターン

34.1 メッセージングの基礎

  • メッセージチャネル(Message Channel)
  • メッセージ(Message)の構造
  • パイプとフィルター(Pipes and Filters)

34.2 メッセージルーティング

  • Content-Based Router(内容ベースルーター)
  • Message Filter(メッセージフィルター)
  • Splitter / Aggregator(分割 / 集約)
  • Resequencer(再順序付け)

34.3 メッセージ変換

  • Message Translator(メッセージ変換)
  • Envelope Wrapper(エンベロープラッパー)
  • Content Enricher(コンテンツエンリッチャー)
  • Canonical Data Model(標準データモデル)

第35章:システム間連携パターン

35.1 販売管理と財務会計の連携

  • 売上データから仕訳データへの変換
  • 自動仕訳パターンの適用
  • イベント駆動による仕訳生成

35.2 販売管理と生産管理の連携

  • 受注情報から生産計画への連携
  • 需要予測データの共有
  • 在庫情報の同期

35.3 生産管理と財務会計の連携

  • 製造原価から仕訳への変換
  • 検収データの会計連携
  • 棚卸差異の会計処理

第36章:マスタデータ管理(MDM)

36.1 マスタデータ統合の課題

  • 各システムでのマスタ重複
  • コード体系の不一致
  • 更新タイミングの同期

36.2 MDM パターン

  • Registry Style(参照型)
  • Consolidation Style(統合型)
  • Coexistence Style(共存型)
  • Transaction Hub Style(トランザクションハブ型)

36.3 共通マスタの設計

  • 取引先マスタの統合
  • 商品/品目マスタの統合
  • 部門・組織マスタの統合

第37章:イベント駆動アーキテクチャ

37.1 イベント駆動の基礎

  • ドメインイベントとは
  • イベントソーシング
  • CQRS(コマンドクエリ責務分離)

37.2 基幹業務システムのイベント設計

  • 販売管理イベント(受注確定・出荷完了・売上計上)
  • 財務会計イベント(仕訳登録・月次締め・決算確定)
  • 生産管理イベント(製造指示・完成報告・検収完了)

37.3 イベントストアの設計

  • イベントテーブルの構造
  • スナップショットの管理
  • イベントの再生とリプレイ

第38章:API 設計とサービス連携

38.1 API 設計の原則

  • RESTful API の設計
  • リソース指向設計
  • バージョニング戦略

38.2 サービス間通信

  • 同期通信(REST / gRPC)
  • 非同期通信(メッセージキュー)
  • サーキットブレーカーパターン

38.3 API ゲートウェイ

  • 認証・認可の一元化
  • レート制限とスロットリング
  • ログ集約とモニタリング

38.4 API インテグレーションテスト

  • テストコンテナによる統合テスト環境
  • REST API エンドポイントのテスト
  • データベース状態の検証
  • テストデータのセットアップとクリーンアップ
  • サービス間連携テスト

第39章:データ連携の実装パターン

39.1 バッチ連携

  • ファイル連携(CSV / XML / JSON)
  • ETL 処理の設計
  • 差分抽出と全件抽出

39.2 リアルタイム連携

  • Change Data Capture(CDC)
  • データベーストリガーの活用
  • メッセージキューによる非同期連携

39.3 連携テーブルの設計

  • 連携ステータス管理
  • エラーハンドリングとリトライ
  • 冪等性の確保

付録

A:全体 ER 図

A.1 基幹業務システム全体図

  • 各サブシステム間の連携

A.2 販売管理システム ER 図

  • マスタ系テーブルの関連
  • トランザクション系テーブルの関連

A.3 財務会計システム ER 図

  • 勘定科目系テーブルの関連
  • 仕訳系テーブルの関連

A.4 生産管理システム ER 図

  • 品目・BOM・工程系テーブルの関連
  • 購買・工程管理・在庫系テーブルの関連

B:テーブル定義一覧

  • 各テーブルのカラム定義
  • 主キー・外部キー一覧

C:用語集

  • 基幹業務システム用語
  • 販売管理用語
  • 財務会計用語
  • 生産管理用語