ARCHITECTURE & ER DIAGRAM

アーキテクチャ図 / ER図

システム全体の構成とデータベース設計の可視化

2026.4.1 shota_h / 林翔太

1 システムアーキテクチャ

Google Cloud Platform 上に構築されたマルチサービス構成。Cloud Load Balancing + Identity-Aware Proxy (IAP) + Cloud Armor による多層防御の背後に、4つの Cloud Run サービスを配置。非同期処理は Cloud Tasks / Cloud Scheduler 経由で Worker サービスに委任する。

構成要素

Cloud Run サービス (4サービス)

サービス技術役割
webNext.js 15フロントエンド (App Router, SSR/RSC)
apiHonoバックエンドAPI (290エンドポイント)
go-servicesGo / Ginヘルスチェック、軽量処理
job-notificationHono通知処理 (メール / Google Chat)

ネットワーク・セキュリティ

  • Cloud Load Balancing — トラフィック分散・SSL終端
  • Identity-Aware Proxy (IAP) — 特定ドメイン限定
  • Cloud Armor (WAF) — DDoS防御・IPフィルタリング
  • Cloud DNS / Cloud Domains — 独自ドメイン管理

非同期処理

  • Cloud Tasks — タスクキュー (通知処理等)
  • Cloud Scheduler — 定期実行トリガー

データ層

  • Supabase PostgreSQL — RDB (56テーブル)
  • Supabase Storage — ファイルストレージ (S3互換)
  • Supabase Auth — 認証 (Google OAuth)
アーキテクチャ図 (1826 x 1001px)
Genzai System Architecture

2 データベース設計 (ER図)

Prisma ORM で管理される PostgreSQL スキーマ。56テーブル + 25 Enum で構成。製造業の資材管理ドメインを反映し、品目・備品・シート・組織の4つの主要エンティティ群を中心に、履歴・通知・認証の補助テーブルが連携する。

テーブル群の構成

品目 (Item)
Item, ItemCategory, ItemImage, ItemAttachment, ItemUnit, ItemNumericInput, ItemSelection, ItemHistory, ItemCategoryAssignment
備品 (Equipment)
Equipment, EquipmentImage, EquipmentDocument, EquipmentAttachment, StatusHistory, SiteUsageHistory, TransferHistory, MaintenanceHistory, LoanHistory
シート (MaterialSheet)
MaterialSheet, MaterialSheetItem, MaterialSheetItemEquipment, MaterialSheetSnapshot, MaterialSheetItemSnapshot, MaterialSheetItemChange, SheetMaster系 (8テーブル)
組織 (Organization)
ManagementFactory, ManagementDepartment, StorageLocation, Company, CompanyContact, CompanyCategoryAssignment, EquipmentCompany
ユーザー / 認証
User, Employee, UserNotificationSetting, UserSearchParams
通知 / 連携
Notification, NotificationRecipient, GoogleChatSpace, GoogleChatSpaceNotificationType, NotificationChatDelivery, HealthCheck

設計方針

  • UUID v7 を主キーに採用(時系列ソート可能)
  • 論理削除 (deletedAt) + 部分インデックス
  • 監査カラム: createdAt, updatedAt, creatorId, updaterId, creatorName, updaterName
  • JSONB: 検索パラメータの永続化 (UserSearchParams)
  • 25の PostgreSQL Enum 型で状態・種別を型安全に管理
  • 組織階層: ManagementFactory > ManagementDepartment > StorageLocation
  • 4種類の履歴テーブル (現場使用 / 移管 / メンテナンス / 貸出)
  • RFID将来拡張を見据えた備品テーブル設計
ER図 (7711 x 3643px — 56テーブル / 25 Enum)
Genzai ER Diagram