ER図とは?
Entitiy-relationship model
の頭文字をとったものです。
日本語でいうと、実体関連モデル
といいます。
簡単にいうと、
データベースの構造を可視化
してくれるものです。
※ ER図の作成はアプリ開発をする上で必要になります。
ER図の作成手順
まず、①モデル
を作ります。どんなモデルがあるのか?
次に、モデルに対してどんな②カラム
(情報)を持たせるのか?
そして、③関連付け
を行う(テーブルとテーブルがどのような関係にあるのか?)
①モデル
(ここでは「テーブル」と定義します。テーブルとは簡単に例えるとデータの事です)
②カラム
(データに必要な情報です)
③関連付け
(データとデータの関係性です)
3つのことを考えて、作成する必要があります。
※ ER図に関して、より詳細の記事
https://qiita.com/ramuneru/items/32fbf3032b625f71b69d
https://qiita.com/yagi_eng/items/fac0e257317cea32d2d1
モデル(テーブル)
どんなモデルを作るか
(どんなテーブルを作るのか)
例えば新規ユーザー登録機能を実装したい時は、
ユーザーを一括で管理するデータがあると思います。
それがユーザーモデル(テーブル)です。
カラム
どんな情報を持たせるか
ユーザー新規登録する時、
ユーザー名、メールアドレス、パスワード
など入力する欄(情報)があります。
それがカラム(情報)です。
関連づけ
テーブルとテーブルの関連
例えば、ユーザーの情報は1つのデータで管理されている。
同様に、商品の情報も1つのデータで管理されている。
ユーザーが商品を出品(或は投稿)することによって、商品という情報が商品データに追加される。
したがって、ユーザーのデータと商品のデータは関係性があるということ。
※ モデルとテーブルの詳細は、下記の記事を参照してください。
https://techacademy.jp/magazine/22033
https://rails-study.net/model/
完成図
説明
上記が簡単なER図の完成図となっています。
まず、ユーザーというモデルがあります。
ユーザーモデルとカラム
PK
とは、prime key(主キー)
といいます。
idがあることによって、ユーザーを識別する事ができます。
id番号は、データベースにデータを登録する際に、連番で自動的につくものです。
※主キーであるidには1から始まる自然数が格納される。
ユーザーモデルは、ユーザー名(カラム)
を持ちます。
新規登録する際に、ユーザー名は入力されます。
メールアドレス(カラム)
もパスワード(カラム)
も同様です。
※カラム名は英語で登録
します。
※分かりやすいカラム名を推奨しましょう。
商品モデルとカラム
ユーザーモデルと同じように主キー
を持ちます。
商品名(カラム)と商品詳細(カラム)が存在します。
そして気になるのは、
FK
という、ユーザーid
です。
これを記述する理由は、
誰が出品したのか?
(または投稿したのか?)ということを、
商品モデルに持たせる必要があります。
外部キーFK(foreign_key)
として、
ユーザーのid番号を商品モデルのカラムに追加
する事で、
誰が出品したのか(投稿したのか)識別する事ができるようになります。
関連付け
最後に、テーブルとテーブルの関係を示すのが、
ER図の中央(ユーザーモデルと商品モデルに挟まれている)にある「線」の事です。
線の意味を説明
ユーザーは、商品をたくさん持つ事ができます。
(一人のユーザーは、たくさんの商品を出品する事ができる)
これを1対多の関係、もしくは1:Nの関係と言います。
右側(商品モデル)の線先が三本線になっている事を「多」と表しています。
○ポチみたいなモノは「0」を表しています。
反対側(左側ユーザーモデル)の先端、2本の縦棒線は「1」を表しています。
今回のER図というのは、
ユーザーは「0」以上の商品を持つ事
を表しています。
そして、商品というのは必ず1人のユーザーに属する
こと。
というように可視化する事ができました。
これがテーブルとテーブルの関連付けを表す記述になります。
まとめ
アプリケーション作成する前に、
ER図を先に完成させておけば、
アプリケーションを作成する際に生じる、
「あれ?何のテーブルが必要だったけ?」
「あれ?このテーブルとこのテーブルはどんな関係にしようとしていたんだっけ?」
みたいな事が、防げるようになります!
可視化できると便利で見やすいですよね!
便利になるけど、ER図作成も少し時間がかかります💦笑
たくさんのデータを持つアプリケーションを作成する時は、
ER図作成することによって、有り難みがわかるようになります!