既に記事更新を諦めそうになっていますが、頑張ってみます。
前置きはさておき、今回のアプリ開発を行う上で重要なDB設計をしていきます。
今回のアプリは、俗に言う勤怠管理アプリなのですが、建設業に特化した物を開発予定です。
まぁ、文章を起こすのが苦手なので、既に詰まってきました。
1、DBモデル
今回使用する予定は11モデルになります。
【基本構成】
┌────────────┐
│ Worker │ ← 作業員区分(自社/下請)
└────┬───────┘
│
▼
┌────────────┐ ┌────────────┐
│ WorkRecord │──────▶│ Site │ ← 工事区分(請負/常用)
└────┬───────┘ └────┬───────┘
│ │
▼ ▼
WorkRecordVehicle SitePhase
│ │
▼ ▼
Vehicle Progress(進捗)
【オプション機能】
┌────────────┐ ┌────────────┐
│ Tool │ │ Material │
└────┬────────┘ └────┬────────┘
▼ ▼
ToolUsage(使用履歴) MaterialUsage(消費履歴)
【その他】
┌────────────────────┐
│ VehicleReservation(予約) │
└────────────────────┘
ざっとこんな感じ。
モデル概要一覧
1. Worker(作業員)
name
: 氏名worker_type
: 自社/下請けaffiliation
,phone_number
,is_active
2. Site(現場)
name
,location
,client_name
construction_type
: 請負/常用notes
3. WorkRecord(作業記録)
worker
,site
,date
phase
: FK(SitePhase)content
,work_time
,overtime
,weekend_work
,notes
4. SitePhase(現場工程)
site
,phase_name
,target_area_m2
,expected_workdays
,order
5. Progress(進捗)
site
,date
,progress_rate
,phase_name
,notes
6. Vehicle(作業車)
name
,license_plate
,vehicle_type
,company
,is_active
7. WorkRecordVehicle(車両使用記録)
work_record
,vehicle
,distance_km
,toll_used
,toll_fee
8. VehicleReservation(予約)
vehicle
,reserved_by
,start_time
,end_time
,purpose
,status
9. MaintenanceRecord(整備履歴)
vehicle
,date
,item
,mileage
,notes
10. Tool(工具)
name
,location
,owner
,status
11. Material(資材)
name
,unit
,stock
,price_per_unit
,notes
これで進めて行こうかなと思います。
追記
✅ 最終モデル一覧(英語ベース・合計16モデル)
分類 | モデル名 | 説明 |
---|---|---|
基本 | Worker | 作業員(自社/下請) |
Site | 現場(位置:GPS/請負・常用) | |
WorkRecord | 作業記録(工程・時間・備考など) | |
SitePhase | 工程(面積・順番・所要人工) | |
Progress | 現場の進捗(%・工程名) | |
車両管理 | Vehicle | 作業車 |
WorkRecordVehicle | 作業日に使用した車両の記録(走行距離・有料道路) | |
VehicleReservation | 作業車の使用予約(日時・目的) | |
MaintenanceRecord | 整備履歴(オイル交換など) | |
資材・工具 | Material | 資材(数量・単位・価格) |
Tool | 工具(所有者・状態・保管場所) | |
オプション | WeatherData | 天候データ(天気・気温・降水量) |
Attendance | 勤怠(出勤/遅刻/欠勤) | |
Attachment | 画像・ファイル添付(写真など) | |
NotificationLog | 通知履歴(自動アラート) | |
CostRecord | コスト集計(人件費・資材費・車両費) |
自分用のメモ