見出し画像

【自学備忘】ER図を正しく理解する-R02-001 -

リレーションは3タイプ

①1:n(会社と社員の関係)
②n:n(社員と社内サークルの関係) ⇒中間テーブル
③1:1(社員と個人情報の関係)

①1:n(会社と社員の関係)
 ⇒1つの会社の中に、社員は複数存在することができる。
 ⇒ほかにも仕入先マスタと商品マスタもそのような関係になるし、商品マスタとSKUマスタも同様。

画像5


②n:n(社員と社内サークルの関係)
 ⇒1人の社員は複数のサークルに所属することができるし、1つのサークルには複数の社員が存在することができる。
 ⇒これは中間テーブル(交差テーブル)を用いて処理するのがセオリー。

画像6

下記のように中間テーブルを挟むのがセオリー。
目的はあくまでも橋渡し。だから活動記録などの余計な情報は入れてはいけません。

画像7


③1:1(社員と個人情報の関係)
 ⇒1人の社員に対して1人分の個人情報しか持ちえません。

画像4


ER図の表記の仕方

〇:0(ゼロ)
|:1
鳥の足のようなマーク:n
を意味します。

使うコトバ、使わないコトバ

実際の現場で使うコトバとそうでないコトバ、といった視点で分けていきます。

画像7

・リレーション:必須
・エンティティ ⇒ テーブル
アトリビュート ⇒ カラム
カーディナリテぃ:あまり使わない…

カラムの種類

①主キー:Primary Key(PK)
主キーとは、データを一意に識別するためにつかわれる項目のことです。
なお「一意」とは、オンリーワンのことであり、実際には「ユニーク」と表現されることもあります。

そして主キーをわかりやすくイメージすると、出席番号です。出席番号は生徒の特定に必要な番号(ID)です。だから重複があってはいけませんね。
 
主キーとなりうる条件は①中身が空ではない②中身が一意である
くどいですが、出席番号は空っぽはダメだし、重複しているのも駄目です。

②外部キー:Foreign Key(FK)
外部キーとは、2つの表を結ぶための別のテーブルで使われている主キーのことです。

たとえば、日直当番表を個人名ではなく、出席番号でいれるイメージ。(出席番号は別のテーブルで管理)

画像7

③それ以外
項目名だけ表示します。

テーブルの関係性

・依存関係(親子関係)
注文テーブルと注文明細テーブルのようなものです。
記載方法:親テーブルは四角、子テーブルは角Rで表現します

・非依存関係
社員テーブルと社内サークルテーブルのようなものです。
記載方法:どちらも四角の枠線で表現

データの種類

①マスタ系:
 顧客マスタ、商品マスタ、SKUマスタ、仕入れ先マスタ、発送方法マスタ など
②トランザクション系:
 購入情報、問い合わせ情報、アクセス情報など

ER図を書き出すステップ

1.サイトの目的を理解する
例)ECサイトで商品を注文する

2.ゴール設計(トリガー)を決める
例)カートに商品を入れて「注文手続き」ボタンをクリックする

3.そのための基本フローを洗い出す
 ①注文画面で「お届け先」「請求先」「配送方法」「決済方法」を入力  ②「注文内容の確認」ボタン
 ③注文内容を確認し、「注文確定」ボタンを押す

4.テーブルをマスタ系とトランザクション系に分ける

画像8

5.カラムを書き出す

画像1

SQLアンチパターン

SQLアンチパターンとは、人類がいままで失敗してきたDB構造の紹介とその解消方法のこと。

参考にさせていただいた資料

●Yotube:せを丸のプログラマー養成講座
データベース設計入門#1 リレーションとER図【11分でマスター!DB設計】


●若手プログラマー必読!5分で理解できるER図の書き方5ステップ