第3回:正しいテーブル設計とリレーション構成
前回は業務要件をシステムに落とし込む方法をご紹介しました。
今回は、その要件を実現するために欠かせない「テーブル設計とリレーション構成」について詳しく解説します。
製造業において、製品・工程・設備・作業者といった多階層のデータを一貫して扱うには、関係性を正しくモデル化することが何よりも重要です。
全体像:製造工程管理のER構造
以下は、本アプリ「生産管理」における実際のデータ構造をMermaid記法で表したER図です。
ER図(Mermaid記法)
erDiagram
%% テーブル定義
t製品マスタ {
TEXT 製品id PK
TEXT 製品名
TEXT 管理番地
REF 管理部署id
}
t生産計画 {
TEXT 生産計画id PK
REF 製品id
NUMBER 予定数量
DATE 開始日
}
t生産計画工程 {
TEXT 工程進捗id PK
REF 生産計画id
REF 工程id
REF 設備id
REF 作業者id
REF 部署id
DATE 完了日
}
t生産実績 {
TEXT 実績id PK
REF 生産計画工程id
REF 作業者id
DATETIME 開始時刻
DATETIME 終了時刻
}
t工程マスタ {
TEXT 工程id PK
TEXT 工程名
NUMBER 工程順
}
t生産工程マスタ {
TEXT 生産工程id PK
REF 製品id
REF 工程id
REF 順序id
}
t生産工程順序マスタ {
TEXT 順序id PK
NUMBER 順序番号
}
t設備マスタ {
TEXT 設備id PK
TEXT 設備名
REF 部署id
}
t社員マスタ {
TEXT 社員id PK
TEXT 氏名
REF 部署id
}
t部署マスタ {
TEXT 部署id PK
TEXT 部署名
}
%% リレーション(1:N)
t製品マスタ ||--o{ t生産計画 : "製品id"
t生産計画 ||--o{ t生産計画工程 : "生産計画id"
t工程マスタ ||--o{ t生産計画工程 : "工程id"
t設備マスタ ||--o{ t生産計画工程 : "設備id"
t社員マスタ ||--o{ t生産計画工程 : "作業者id"
t部署マスタ ||--o{ t生産計画工程 : "部署id"
t部署マスタ ||--o{ t設備マスタ : "部署id"
t部署マスタ ||--o{ t社員マスタ : "部署id"
t部署マスタ ||--o{ t製品マスタ : "管理部署id"
t生産計画工程 ||--o{ t生産実績 : "生産計画工程id"
t社員マスタ ||--o{ t生産実績 : "作業者id"
t製品マスタ ||--o{ t生産工程マスタ : "製品id"
t工程マスタ ||--o{ t生産工程マスタ : "工程id"
t生産工程順序マスタ ||--o{ t生産工程マスタ : "順序id"

主なテーブルの定義と役割
製品マスタ
製品の基本情報を格納します。
図面情報を子テーブルとして保有します。
構成情報を子テーブルとして保有します。
カラム | 説明 |
---|---|
製品id (PK) | 一意な製品コード |
製品名 | 名称(表示用) |
管理番地 | 現場での保管・識別用 |
管理部署id | 所属部署(Ref: 部署マスタ) |
生産計画テーブル
製品ごとの生産予定を管理します。
生産工程(生産計画工程テーブル)を子テーブルとして保有します。
カラム | 説明 |
---|---|
生産計画id (PK) | 生産単位の主キー |
製品id | 製品マスタへの参照 |
予定数量 | 生産予定数 |
開始日 | 生産開始予定日 |
生産計画工程テーブル
各生産計画に対する工程を管理するテーブルです。
カラム | 説明 |
---|---|
工程進捗id (PK) | 主キー |
生産計画id | Ref: 生産計画テーブル |
工程id | Ref: 工程マスタ |
設備id | Ref: 設備マスタ |
作業者id | Ref: 社員マスタ |
部署id | Ref: 部署マスタ |
完了日 | 完了処理日時 |
生産実績テーブル
生産予定に対する実績を管理します。
実際の作業実績(いつ誰がどれだけの時間作業したか)を記録します。
カラム | 説明 |
---|---|
実績id (PK) | 一意な実績ID |
生産計画工程id | Ref: 生産計画工程テーブル |
作業者id | Ref: 社員マスタ |
開始時刻 | 作業開始日時 |
終了時刻 | 作業終了日時 |
工程マスタ
工程の一覧です。
カラム | 説明 |
---|---|
工程id (PK) | 一意な工程コード |
工程名 | 表示名 |
工程順 | 並び順 |
生産工程マスタ
製品ごとの標準工程構成(工程パターン)を定義します。
工程情報(工順)を子テーブル(生産工程順序マスタ)として保有します。
カラム | 説明 |
---|---|
生産工程id (PK) | 主キー |
製品id | Ref: 製品マスタ |
生産工程順序マスタ
工程の順序定義を一元管理します。
カラム | 説明 |
---|---|
順序id (PK) | 主キー |
工程id | Ref: 工程マスタ |
設備id | Ref: 設備マスタ |
順序番号 | 整数。並び順制御に使用 |
設備マスタ / 社員マスタ / 部署マスタ
それぞれ設備、作業者、組織情報のマスタテーブルです。
設計上のポイント
設計要素 | ポイント |
---|---|
マスタとトランザクションの明確な分離 | マスタ:固定情報、トランザクション:毎日の記録 |
Refによるデータ整合性 | AppSheetの「逆参照列」も自動生成されるため、一覧表示や集計に便利 |
工程順管理 | 標準工程(生産工程マスタ)と工程順(生産工程順序マスタ)で柔軟に対応 |
履歴管理 | 生産実績テーブルを分けることで、作業ログ・トレースが可能 |
次回予告:ビューとスライスで「見せ方」を最適化する
次回は、ここで定義されたテーブルをもとに、実際にAppSheet上でどのように画面に見せるか
一覧・フォーム・ダッシュボード・現場表示について詳しくご紹介します。