はじめに
開発プロジェクトにおいて、システムの設計を視覚的に表現することは、チームメンバーやステークホルダー間でのコミュニケーションを促進し、共通理解を深める上で非常に有効です。このブログでは、Mermaidを使用してER図とシーケンス図を作成する方法について解説します。
ER図の作成
ER図は、データベースの構造を視覚化するために使用されます。エンティティ(データの集まり)とその関係を図式化することで、データモデルの理解を助けます。
ER図の例
以下は、フィットネスアプリのデータモデルを表すER図の例です。ユーザー、種目のデフォルト設定設定、セット、実行された種目、履歴などのエンティティが含まれています。
erDiagram
user ||--|| exercise_template_setting : ""
user ||--o{ set : ""
user ||--o{ history : ""
set ||--|{ set_exercises : ""
set_exercises ||--|{ exercise : ""
exercise ||--o{ performed_exercise : ""
history ||--|{ performed_exercise : ""
user {
bigint id "ID"
varchar email "メールアドレス"
varchar password "パスワード"
}
exercise_template_setting {
bigint id "ID"
bigint user_id "ユーザーID"
varchar weight "強度"
int rep_num "回数"
int set_num "セット数"
varchar interval "インターバル"
}
set {
bigint id "ID"
bigint user_id "ユーザーID"
varchar set_name "セット名"
}
set_exercises {
bigint id "ID"
bigint set_id "セットID"
bigint exercise_id "種目ID"
}
exercise {
bigint id "ID"
bigint user_id "ユーザーID"
varchar exercise_name "種目名"
varchar weight "強度"
int rep_num "回数"
int set_num "セット数"
varchar interval "インターバル"
}
performed_exercise {
bigint id "ID"
bigint exercise_id "種目ID"
varchar weight "強度"
int rep_num "回数"
int set_num "セット数"
varchar interval "インターバル"
}
history {
bigint id "ID"
bigint user_id "ユーザーID"
date date "日付"
time training_duration "トレーニング時間"
}
このER図では、ユーザーは種目のデフォルト設定、セット、トレーニングの履歴を持つことができます。また、セットは複数のエクササイズから構成され、実行された種目はトレーニングの履歴に記録されます。
シーケンス図の作成
シーケンス図は、オブジェクト間のインタラクション(メッセージのやり取り)を時系列に沿って表現するUML図です。システムの動作を理解するのに役立ちます。
シーケンス図の例
以下は、ユーザーが種目を作成するプロセスを示すシーケンス図の簡単な例です。
sequenceDiagram
participant U as User
participant F as Frontend
participant B as Backend
loop 種目作成処理
U->>F: 種目作成リクエスト
F->>B: 種目作成APIをコール
B->>B: 種目データを検証
alt 種目データが有効
B->>F: 種目作成成功
F->>U: 種目作成成功を表示
else 種目データが無効
B->>F: 種目作成失敗
F->>U: 種目作成失敗を表示
end
end
このシーケンス図では、ユーザーがフロントエンドを介してセット作成のリクエストを送り、フロントエンドがそのリクエストをバックエンドに転送します。バックエンドはセットデータを検証し、成功メッセージをフロントエンド経由でユーザーに返します。