どうも。つじけ(tsujikenzo)です。このシリーズでは「dbdiagram.ioでテキストからER図を書こう」について、全4回でご紹介します。今日は3回目です。
前回のおさらい
前回は、「基礎知識」をお送りしました。
今回は、「DBML」をお送りします。
今日のアジェンダ
- DBMLのコーディング概要
- テーブル定義
DBMLのコーディング概要
dbdiagram.ioでコードを書くときは、主に、以下のことに留意しましょう。
コードの中で 単語を””(ダブルクォーテーション)で囲む と、日本語も使用できますが、特別なばあいを除いて英語で書いていきましょう。
テーブル定義
ダイアグラムの新規作成
まず、ダイアグラムを新規作成します。
タイトル横の下向き矢印から、「New Diagram」をクリックして、タイトルを入力します。
必ず「Force Save(強制保存)」をクリックして、ダイアグラムを保存しましょう。普段おこなう「新規保存」や「上書き保存」と違いますが、プロジェクト全体を保存すると思ってください。
主な、テーブル定義は下記になります。
項目 | 説明 | 例 |
---|---|---|
テーブル名 | 型を問いません。カンマやセミコロンやスラッシュや空白などは使用できません | User, 01Deals |
カラム名 | プレーンテキスト、もしくは”カラム名”(二重引用符)が使用できます | name, “last_name” |
型 | カラムの型を定義します | int,integer,timestamp.varchar |
設定 | カラムの設定を定義します | [pk, increment, not null] |
{} | リストを表しています | インデックス、制約、およびテーブル定義 |
[] | 設定を表しています | [ref: > orders.id] |
テーブルとカラム定義
テーブル定義は、このようになります。
そして、テーブル定義には、かならず1つ以上のカラム定義が必要です。
コードを書いてみましょう。
Table members {
id int [primary key]
}
キャンバスにテーブルが生成されました。
テーブルは複数作成できます。
エイリアスの活用
テーブル名は、エイリアスを設定し、後で呼び出すことができます
このように記述します。(ref参照については、後ほど説明します)
ノートとコメント
コードに影響をあたえない、コメントやノートを記述できます。
コメントはエディタのどこにでも書けますが、ノートは、テーブル定義、カラム定義などのコード内に書く必要があります。
//コメントです
Table members {
id int [pk, note:'less than 10']
}
キャンバスでカラムにマウスカーソルを合わせると、参照ウィンドウが表示されます。
同様に、テーブルへのコメントも、参照ウィンドウが表示されます。
Table countries{
code int [pk]
note:'Members origin' //コメントです
}
設定と制約
テーブル内の設定は、すべて[](角括弧)内に記述します。
主なプロパティ
Property | 説明 | キャンバス対応 |
---|---|---|
pk, primary key | 主キー | 〇 |
unique | 重複を認めない | × |
not null | Nullを認めない | × |
increment | レコードが増えると増加する | × |
主なkey:value
Key | Values | キャンバス対応 |
---|---|---|
note | ‘文字列型’ | × |
ref | > Table.columnなど | 〇 |
default | 値 | × |
delete | cascade,restrictなど | × |
headercolor | #3498dbなど | △(近日予定) |
すでにコード内に登場している設定(pkやnote)もありますね。写経してみましょう。
//テーブル定義
Table members {
id int [pk, note:'less than 10']
full_name varchar [not null]
gender varchar(1) [default: 'm']
created_at timestamp
}
Table countries{
code int [pk]
name varchar [unique]
note:'Members origin'
}
まとめ
以上で、「DBML」、をお送りしました。
SQL文になれていない方でも、テーブルを作成したり、カラムを定義する体験ができたのではないでしょうか。
カラムの入力値に制約をかける、varchar(1) や、full_name varchar [not null] といった記述方法は、必要に応じて徐々に追記していけばいいと思います。
まずは、ER図をコードで書ける楽しさを体験しましょう。
次回は、「カーディナリティとリレーションシップ」をお届けします。