【自学備忘】ER図を正しく理解する-R02-001 -
リレーションは3タイプ
①1:n(会社と社員の関係)
②n:n(社員と社内サークルの関係) ⇒中間テーブル
③1:1(社員と個人情報の関係)
①1:n(会社と社員の関係)
⇒1つの会社の中に、社員は複数存在することができる。
⇒ほかにも仕入先マスタと商品マスタもそのような関係になるし、商品マスタとSKUマスタも同様。
②n:n(社員と社内サークルの関係)
⇒1人の社員は複数のサークルに所属することができるし、1つのサークルには複数の社員が存在することができる。
⇒これは中間テーブル(交差テーブル)を用いて処理するのがセオリー。
下記のように中間テーブルを挟むのがセオリー。
目的はあくまでも橋渡し。だから活動記録などの余計な情報は入れてはいけません。
③1:1(社員と個人情報の関係)
⇒1人の社員に対して1人分の個人情報しか持ちえません。
ER図の表記の仕方
〇:0(ゼロ)
|:1
鳥の足のようなマーク:n
を意味します。
使うコトバ、使わないコトバ
実際の現場で使うコトバとそうでないコトバ、といった視点で分けていきます。
・リレーション:必須
・エンティティ ⇒ テーブル
アトリビュート ⇒ カラム
カーディナリテぃ:あまり使わない…
カラムの種類
①主キー:Primary Key(PK)
主キーとは、データを一意に識別するためにつかわれる項目のことです。
なお「一意」とは、オンリーワンのことであり、実際には「ユニーク」と表現されることもあります。
そして主キーをわかりやすくイメージすると、出席番号です。出席番号は生徒の特定に必要な番号(ID)です。だから重複があってはいけませんね。
主キーとなりうる条件は①中身が空ではない②中身が一意である
くどいですが、出席番号は空っぽはダメだし、重複しているのも駄目です。
②外部キー:Foreign Key(FK)
外部キーとは、2つの表を結ぶための別のテーブルで使われている主キーのことです。
たとえば、日直当番表を個人名ではなく、出席番号でいれるイメージ。(出席番号は別のテーブルで管理)
③それ以外
項目名だけ表示します。
テーブルの関係性
・依存関係(親子関係)
注文テーブルと注文明細テーブルのようなものです。
記載方法:親テーブルは四角、子テーブルは角Rで表現します
・非依存関係
社員テーブルと社内サークルテーブルのようなものです。
記載方法:どちらも四角の枠線で表現
データの種類
①マスタ系:
顧客マスタ、商品マスタ、SKUマスタ、仕入れ先マスタ、発送方法マスタ など
②トランザクション系:
購入情報、問い合わせ情報、アクセス情報など
ER図を書き出すステップ
1.サイトの目的を理解する
例)ECサイトで商品を注文する
2.ゴール設計(トリガー)を決める
例)カートに商品を入れて「注文手続き」ボタンをクリックする
3.そのための基本フローを洗い出す
①注文画面で「お届け先」「請求先」「配送方法」「決済方法」を入力 ②「注文内容の確認」ボタン
③注文内容を確認し、「注文確定」ボタンを押す
4.テーブルをマスタ系とトランザクション系に分ける
5.カラムを書き出す
SQLアンチパターン
SQLアンチパターンとは、人類がいままで失敗してきたDB構造の紹介とその解消方法のこと。
参考にさせていただいた資料
●Yotube:せを丸のプログラマー養成講座
データベース設計入門#1 リレーションとER図【11分でマスター!DB設計】
●若手プログラマー必読!5分で理解できるER図の書き方5ステップ