LoginSignup
5
3

More than 1 year has passed since last update.

マーメード#13 ER図

Last updated at Posted at 2022-12-20

ひとりマーメイド13日目
ER図

概要

マーメイドエンジニアのひろきです。こんにちは。
最近流行り(流行らせたい)のマーメイドについて理解を深めていこうと思います。

この記事ではER図の記述について紹介します!

↓↓前回の記事はこちら

マーメイドで記述するER図

前回の記事では状態遷移図の記法を紹介しました。
今日はER図を見ていきます。ER図はデータ構造やその関係性を可視化するための図であり、主にデータベース設計で用いられます。

mermaid
erDiagram
    USER{
        number user_id
        string user_name
    }

    FOLLOW{
        number follow_id
        number user_id
    }

    FOLLOWER{
        number follower_id
        number user_id
    } 

    POST{
        number post_id
        number user_id
        string title
        string text
        datetime posted_at
    }

    REPLY{
        number reply_id
        number reply_to
        number user_id
        string text
        datetime posted_at
    }

    USER ||--o{ FOLLOW: ""
    USER ||--o{ FOLLOWER: ""
    USER ||--o{ POST: ""
    POST ||--o{ REPLY: ""

エンティティの宣言

エンティティを宣言します。エンティティ名を記述するとノードが生成されます。
ENTITY_NAME

mermaid
erDiagram
    USER

アトリビュート
エンティティに含める属性をアトリビュートといいます。
アトリビュートは以下のように定義されます。

ENTITY_NAME{
    TYPE ATTRIBUTE
    .
    .
    .
}

ER図では左に型、右にkeyを記述するのが一般的です。

mermaid
erDiagram
    USER{
            number user_id
            string user_name
    }

リレーション

エンティティ同士の接続をリレーションとよびます。

以下のような記述でエンティティ同士を結ぶことができます。
ENTITY_1 ||--o{ ENTITY_2: "COMMENT"

:以降にテキストを記述します。レンダリングの都合上これは必須なので、特に書くことがない場合は""と記述してください。

mermaid
erDiagram
    USER ||--o{ FOLLOW: ""
    USER ||--o{ POST: "posted"

直線と破線

リレーションの線の種類を指定することができます。

-- 直線
.. 破線
mermaid
erDiagram
    USER ||--o{ FOLLOW: ""
    USER ||..o{ POST: ""

カーディナリティ

カーディナリティを用いてエンティティの多重度を表現します。1対11対多みたいなやつです。

|o o| 0 or 1
|| || 1
}o o{ 0以上
}| |{ 1以上
mermaid
erDiagram
    ER1 |o--o| ER2: "0 or 1"
    ER3 ||--|| ER4: "1"
    ER5 }o--o{ ER6: "0以上"
    ER7 }|--|{ ER8: "1以上"

主キーと外部キー

属性に主キー/外部キーを定義することができます。

FK 外部キー
PK 主キー

TYPE ATTRIBUTE KEY

mermaid
erDiagram
    USER{
        number user_id PK
        string user_name
    }

    POST{
        number user_id FK
        number post_id
        string title
        string text
        datetime posted_at
    }

    USER ||--o{ POST: ""

アトリビュートコメント

属性にコメントを付与することができます。
TYPE ATTRIBUTE "COMMENT"

mermaid
erDiagram
    USER{
        number user_id   "This is the comment"
        string user_name "Hello comment"
    }

keyとコメントの両方を付与することも可能です。この場合必ずkeyが左になります。
TYPE ATTRIBUTE KEY "COMMENT"

mermaid
erDiagram
    USER{
        number user_id   FK "This is the comment"
        string user_name "Hello comment"
    }

まとめ

ER図の基本的な記法について紹介しました!

↓↓次回の記事はこちら!!

参考

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3