dbdiagram.ioを使ってみた(DBMLについて調べた)

開発系ツール

dbdiagram.ioとは

dbdiagram.io は、ブラウザでER図を作成できるサービス

DBML(database markup language)という、データベース構造をシンプルに記述できる言語を使用してER図を作成できる

DBMLについて

DBMLとは

データベースのスキーマと構造を文書化するために設計されたオープンソースのDSL言語

リポジトリはこちら

生成されたER図の見た目

このように、カラム名込みのテーブルを定義でき、関連する絡む同士をつなげることができる

書き方

細かいところはドキュメントを参照してください

テーブル

Table table_name {
  ...
}
  • table_name
    • テーブル名(日本語でもOK)

カラム

Table table_name {
  column_name1 column_type [column_settings]
  column_name2 column_type [column_settings]
   :
}
  • column_name
    • カラム名
  • column_type
    • 特に決まりはないので、column_name と同様に自由な文字列を羅列できる
    • ダブルクォーテーションで囲むとスペースありの複数単語も設定可能
  • column_settings
    • カラムの設定
    • primary key や not null などそのカラムの制約などを記載できる
    • 記載できるもの
      • primary key
        • プライマリーキー
        • pk と書いても良い
      • not null
        • null を許容しないカラムにつける
      • default: some_value
        • デフォルト値
      • note: ‘string to add notes’
        • カラムへのコメント
      • 他にもあるがER図には表現されなさそうなので割愛

外部キー制約

3種類書き方がある

1つ目 : カラム定義時に記載

Table table_name1 {
  column_name1 column_type
   :
}

Table table_name2 {
  column_name2 column_type [ref: > table_name1.column_name1]
   :
}

2つ目 : テーブル定義とは別に記載 (1行で書く)

Table table_name1 {
  column_name1 column_type
   :
}

Table table_name2 {
  column_name2 column_type
   :
}

Ref: table_name2.column_name2 > table_name1.column_name1

3つ目 : テーブル定義とは別に記載 (複数行で書く)

Table table_name1 {
  column_name1 column_type
   :
}

Table table_name2 {
  column_name2 column_type
   :
}

Ref {
  table_name2.column_name2 > table_name1.column_name1
}

関係性の記述には以下4タイプが有る

  • <
    • 1 対 多 (table_name2.column_name2 < table_name1.column_name1)
  • >
    • 多 対 1 (table_name2.column_name2 > table_name1.column_name1)
    • 1 対 1 (table_name2.column_name2 – table_name1.column_name1)
  • <>
    • 多 対 多 (table_name2.column_name2 <> table_name1.column_name1)

コメント

Copied title and URL