Mermaid ER図 — データベース設計

MermaidでEntity-Relationship図を設計します。エンティティ定義、属性タイプ、リレーションシップのカーディナリティ表記、DB設計のベストプラクティスを学びます。

Diagram Types

詳細な説明

MermaidのER図

Entity-Relationship(ER)図は、テーブル(エンティティ)、カラム(属性)、およびテーブル間の関係を示すことでデータベーススキーマを視覚化します。MermaidのerDiagram構文は、これらのスキーマをコードとして簡潔に定義する方法を提供します。

エンティティの定義

エンティティは名前の後に波括弧内で属性を定義します。各属性にはタイプと名前があります:

erDiagram
    CUSTOMER {
        int id PK
        string name
        string email UK
        date created_at
    }
  • PK は主キーを示します
  • UK はユニークキーを示します
  • FK は外部キーを示します

リレーションシップのカーディナリティ

Mermaidはカーディナリティの表記システムを使用します:

表記 意味
||--|| 1対1(正確に1つ)
||--o{ 1対0以上
||--|{ 1対1以上
o|--o{ 0または1対0以上

記号の意味:| = 正確に1つ、o = 0、{ = 多数。

完全なデータベーススキーマ

erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--|{ ORDER_ITEM : contains
    PRODUCT ||--o{ ORDER_ITEM : "is ordered in"
    CUSTOMER {
        int id PK
        string name
        string email UK
        string phone
    }
    ORDER {
        int id PK
        int customer_id FK
        date order_date
        string status
        decimal total
    }
    ORDER_ITEM {
        int id PK
        int order_id FK
        int product_id FK
        int quantity
        decimal unit_price
    }
    PRODUCT {
        int id PK
        string name
        string sku UK
        decimal price
        int stock_count
    }

ベストプラクティス

  1. PK/FK/UKアノテーションを使用する — 制約を一目で伝えます。
  2. リレーションシップに動詞で名前を付けるplacescontainsbelongs toはダイアグラムを自己文書化します。
  3. エンティティを集中させる — 属性が10-12個を超える場合は分割を検討してください。
  4. 関連エンティティをグループ化する — 密接に関連するテーブルをソースコード内で近くに配置すると、Mermaidが隣接してレンダリングします。

MermaidのER図は複合キーやチェック制約をネイティブにサポートしていませんが、アノテーションやコメントで追加情報を記述できます。

ユースケース

SaaS課金システムのスキーマを設計するデータベース管理者のケース。ER図が顧客、サブスクリプション、請求書、支払い、明細項目を適切なカーディナリティでモデル化し、マイグレーションスクリプトを書く前の信頼できる設計図として機能します。

試してみる — Mermaid Diagram Editor

フルツールを開く