LoginSignup
3
1

More than 3 years have passed since last update.

PlantUMLでER図を作成してみた

Posted at

ER図を作成するために、PlantUML を使ってみました。

PlantUMLとは

UMLなどのダイアグラムを、DSL(ドメイン固有言語)で作成してくれるツールです。
※ DSL:特定領域に特化した言語

以下、公式ページより。

PlantUML は、以下のようなダイアグラムを素早く作成するためのコンポーネントです。
・シーケンス図
・ユースケース図
・クラス図
・アクティビティ図(古い文法はこちら)
・コンポーネント図
・状態遷移図(ステートマシン図)
・オブジェクト図
・配置図
・タイミング図

PlantUMLの導入手順

必要環境

  • Homebrew
  • VSCode

PlantUMLのインストール

$ brew install graphviz
$ brew install plantuml

VSCode に PlantUML のプラグインをインストール

  • VSCodeを起動します
  • Marketplace より、PlantUML をインストールします。 スクリーンショット 2019-07-09 15.53.26.png

PlantUMLのファイル作成/編集

  • 拡張子 .pu のファイルを作成します。
  • PlantUML記法で、puファイルを編集します。
  • VSCode上で [Alt] + [D] でプレビュー画面が開きます.

例 :ER図

EntityRelationship.pu
@startuml EntityRelationship

package "MySQL" as target_system <<Database>> {

    entity "USERS" as users {
        + USER_ID [PK]
        --
        USER_NAME
        UID
        INSERT_DATA
        UPDATE_DATE
        DELETE_FLAG
       }

    entity "PORTFOLIOS" as portfolios {
        + PORTFOLIO_ID [PK]
        --
        # USER_ID [FK]
        --
        PORTFOLIO_NAME
        PORTFOLIO_URL
        REPOSITORY_URL
        PORTFOLIO_OVERVIEW
        PORTFOLIO_APPEAL
        PORTFOLIO_TERM
        PORTFOLIO_STATE
        NICE_COUNT
        INSERT_DATA
        UPDATE_DATE
        DELETE_FLAG
    }

    entity "PORTFOLIOS_IMAGES" as portfolios_images {
        + IMAGE_ID [PK]
        --
        # PORTFOLIO_ID [FK]
        --
        PORTFOLIO_IMAGE
        INSERT_DATA
        UPDATE_DATE
        DELETE_FLAG
    }

    entity "PORTFOLIOS_SKILLS" as portfolios_skills {
        + SKILL_ID [PK]
        --
        # SKILL_CD [FK]
        # PORTFOLIO_ID [FK]
        --
        INSERT_DATA
        UPDATE_DATE
        DELETE_FLAG
    }

    entity "PORTFOLIOS_URLS" as portfolios_urls {
        + URL_ID [PK]
        --
        # PORTFOLIO_ID [FK]
        # URL_CATEGORY_ID [FK]
        --
        URL
        INSERT_DATA
        UPDATE_DATE
        DELETE_FLAG
    }

users --right--o{ portfolios
portfolios -down-|{ portfolios_images
portfolios -down-|{ portfolios_skills
portfolios --|{ portfolios_urls

@enduml

Entityで各テーブルを定義して、最後にそれぞれのリレーション情報を記載するだけです。

画像出力

  • 以下コマンドで、puフォルダと同じディレクトリにpngファイルが出力されます。
$ plantuml EntityRelationship.pu

出力画像↓
EntityRelationship.png

まとめ

Excelや他の描画ツールのGUIで図形をペタペタ貼って作成するより、コードでかける方がだいぶ楽に感じました。
記法もシンプルで簡単でした。

あと、コード管理できるのは便利だと思いました。
Git等で管理すれば、コード差分や変更履歴がわかるので、設計周りのドキュメント管理がしやすくなると思います。

参考

3
1
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
3
1