はじめに
開発プロジェクトにおいて、システムの設計を視覚的に表現することは、チームメンバーやステークホルダー間でのコミュニケーションを促進し、共通理解を深める上で非常に有効です。このブログでは、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
このシーケンス図では、ユーザーがフロントエンドを介してセット作成のリクエストを送り、フロントエンドがそのリクエストをバックエンドに転送します。バックエンドはセットデータを検証し、成功メッセージをフロントエンド経由でユーザーに返します。