データベースエンジニアととして仕事をしている以上、必ず必要になってくるのがデータベースのER図。

 

もちろん、現職のデータベースのER図はキチンと?あるにはあるので、個別で作成する必要はないのですが、そこそこ大きなデータベースを扱っているため、テーブル・カラムだけでもかなりの量になっています。それらを全て図に表すと自分が必要なテーブルってどこだ・・とか、相関関係が見えなくなってきて、まず読み解くだけで時間がかかる・・・(都度依頼があるテーブルが違うかったり、条件が複雑だったりする)ということが嫌になってきたので、

 

自分用の、業務で自分が担当してきたテーブル and 関係のあるテーブルだけのER図を作っておいてもいいのでは?

 

と思った訳です。

 

ER図とは

 

ER図のEはエンティティ(Entity)の略で、Rはリレーションシップ(Relationship)の略です。つまりER図は「エンティティ=モノ」と「リレーションシップ=関係」の組み合わせでシステムのデータやデータ間の処理構造を設計します。

 

では自分用のER図を何で作るか。

 

notion とか VSCODE とか Git とか、今はいろいろなツールを選択肢にすることができますね。

 

個人的にはSQLを書く際、VSCODEを使っているので、同じディレクトリにER図があるといいのでは?と思い、VSCODEを選択してみました。

 

そして、ER図を描く方法ですが、少しずつ名前を見るようになってきた、 Mermaid を使います。

※ Mermaidとは. Markdown感覚に近い独自記法で様々な図を書けるもの。

 

Markdown にある程度慣れている人ならこちらのほうが早いのではないでしょうか。

 

VSCODEで下記拡張機能を探してインストールすればもう、使えます。

 

Markdown Preview Mermaid Support

 

 
あとは設定でmarkdownのプレビューを表示するようにすれば、ほぼリアルタイムで自分の書いたテキストがER図となって表示されます。カラム多いと大変でした・・・・。
 
以下は例です。
 
```mermaid
 
---
title: Order example
---
erDiagram
    CUSTOMER ||--o{ ORDER : places
    CUSTOMER {
        string name
        string custNumber
        string sector
    }
    ORDER ||--|{ LINE-ITEM : contains
    ORDER {
        int orderNumber
        string deliveryAddress
    }
    LINE-ITEM {
        string productCode
        int quantity
        float pricePerUnit
    }

 

```

 

必要なものだけでいいですし、ER図だけでなく資料やプレゼンなどにも使えるのでは。と思ってます。

共有目的であればnotionで使えばいいんですけどね。(書き方が若干違うけどあまり気にはなりません。)

少しずつER図を拡大していって業務を円滑に行うことができるような形でER図を作っていけたらいいなぁ、と思ってます。

(カラム追加とか変更とかあると大変だなぁ、と思ってはいますけど)