ひとりマーメイド13日目
ER図
概要
マーメイドエンジニアのひろきです。こんにちは。
最近流行り(流行らせたい)のマーメイドについて理解を深めていこうと思います。
この記事ではER図の記述について紹介します!
↓↓前回の記事はこちら
マーメイドで記述するER図
前回の記事では状態遷移図の記法を紹介しました。
今日はER図を見ていきます。ER図はデータ構造やその関係性を可視化するための図であり、主にデータベース設計で用いられます。
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
erDiagram
USER
アトリビュート
エンティティに含める属性をアトリビュートといいます。
アトリビュートは以下のように定義されます。
ENTITY_NAME{
TYPE ATTRIBUTE
.
.
.
}
ER図では左に型、右にkeyを記述するのが一般的です。
erDiagram
USER{
number user_id
string user_name
}
リレーション
エンティティ同士の接続をリレーションとよびます。
以下のような記述でエンティティ同士を結ぶことができます。
ENTITY_1 ||--o{ ENTITY_2: "COMMENT"
:
以降にテキストを記述します。レンダリングの都合上これは必須なので、特に書くことがない場合は""
と記述してください。
erDiagram
USER ||--o{ FOLLOW: ""
USER ||--o{ POST: "posted"
直線と破線
リレーションの線の種類を指定することができます。
-- | 直線 |
.. | 破線 |
erDiagram
USER ||--o{ FOLLOW: ""
USER ||..o{ POST: ""
カーディナリティ
カーディナリティを用いてエンティティの多重度を表現します。1対1
や1対多
みたいなやつです。
|o | o| | 0 or 1 |
|| | || | 1 |
}o | o{ | 0以上 |
}| | |{ | 1以上 |
erDiagram
ER1 |o--o| ER2: "0 or 1"
ER3 ||--|| ER4: "1"
ER5 }o--o{ ER6: "0以上"
ER7 }|--|{ ER8: "1以上"
主キーと外部キー
属性に主キー/外部キーを定義することができます。
FK | 外部キー |
PK | 主キー |
TYPE ATTRIBUTE KEY
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"
erDiagram
USER{
number user_id "This is the comment"
string user_name "Hello comment"
}
keyとコメントの両方を付与することも可能です。この場合必ずkeyが左になります。
TYPE ATTRIBUTE KEY "COMMENT"
erDiagram
USER{
number user_id FK "This is the comment"
string user_name "Hello comment"
}
まとめ
ER図の基本的な記法について紹介しました!
↓↓次回の記事はこちら!!
参考