🎨
MermaidでER図とユースケース図を書いてみた
最近、設計ドキュメンテーションを書く際にMermaidに出会いました。以前はPlantUMLを使用していましたが、NotionやZennなどではMermaidを使うことで自動的に図が生成されるという利点があります。それにより、私の設計プロセスが大きく改善されました。それでは、Mermaidの使用方法と私が実際に作成した図についてシェアします。
ユースケース図
ユースケース図はシステムの機能を視覚的に表現するのに役立ちます。ただし、Mermaidは厳密にはユースケース図を描く機能は提供していません。しかし、フローチャートの機能を使えばユースケース図に近いものを作成することが可能です。
以下に、「物件管理」システムのユースケース図をMermaidで作成した例を示します:
コードは
graph TB
subgraph "物件管理"
User((ユーザー))
subgraph "物件情報"
AddPropertyInfo[登録]
EditPropertyInfo[編集]
ViewPropertyDetails[閲覧]
end
subgraph "物件履歴"
ViewPropertyHistory[閲覧]
end
end
User --> AddPropertyInfo
User --> EditPropertyInfo
User --> ViewPropertyDetails
User --> ViewPropertyHistory
以下に、このコードの各部分の解説をします。
-
graph TB
: これはフローチャートを作成することを示しています。TBは上から下への流れを示す指定子です。 -
subgraph "物件管理"
:サブグラフ(物件管理)を作成します。この部分はフローチャートのセクションを区別するために使用されます。 -
AddPropertyInfo[登録]
:丸括弧はアクター(この場合はユーザー)を表します。 -
User --> AddPropertyInfo
:この矢印はユーザーが物件情報を追加するアクションを示します。
ER図:
次に、ER図(エンティティ関連図)の作成方法を見てみましょう。ER図はデータベースの構造を視覚化するのに役立ちます。
以下は、ユーザー、物件(PROPERTY)エンティティで構成されるER図の一例です:
erDiagram
USER ||--o{ PROPERTY : owns
PROPERTY ||--o{ HISTORY : has
USER {
id int
name string
email string
password string
}
PROPERTY {
id int
user_id int
name string
location string
size int
}
ここで、このコードの各部分について説明します。
-
erDiagram
:これはER図を作成することを示します。 -
USER ||--o{ PROPERTY : owns
:これはユーザーが複数の物件を所有しているという関係を示します。符号の並びはカーディナリティ(関連性の種類)を示しています。 -
USER { id int name string email string password string }
:これはユーザーエンティティの属性を定義しています。
Mermaidは学習曲線が少なく、シンプルで直感的な図を描くのに役立つ素晴らしいツールです。設計やドキュメンテーション作成の際にはぜひ利用してみてください。
Discussion