1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者プログラマー】SaveData開発日記 #5 ER図を考えよう】

Last updated at Posted at 2026-01-08

前回のあらすじ


このアプリを作る上で無くてはならない、
データの関係性について考えていきます。

これ、ER図といって
ER図(Entity Relationship Diagram)
実体x関係性x図 です。その名の通りデータの関係性を表したものです。
08a6e44d-8ee4-4502-be09-467e10399914.png
こんなやつ

Draw.ioで作っていくよ

ER図を書く方法はたくさんあるのですが、
今回はしっかりと自分で書けるように
Draw.ioという無料アプリを使ってみます。

要素を満たすカラム名を決めていくでおじゃ

先に画面遷移図を見つつカラム名、やることに対して
必要そうなのをリストアップしていくよ

USERS(ユーザー個人の基本情報)

カラム名 説明 備考
id int PK ユーザー ID 主キー
email string メールアドレス ログイン認証用 / UNIQUE
name string 表示名 主人公の名前
birthday string 生年月日 例:1985-01-23
gender string 性別 任意入力
encrypted_password string 暗号化されたパスワード 認証
created_id datetime 作成日時
updated_id datetime 更新日時

STATUSES(ユーザー個人の詳細情報)

カラム名 説明 備考
id int PK ID 主キー
user_id int FK ユーザー ID users.id へ外部キー
like_gamehard string 好きなゲームハード 例:PS2 / Switch
like_gametype string 好きなゲームジャンル 例:RPG / ACT
own_title string 称号 自由記述  侍より馬の骨とか
self_introduce text 自己紹介 自由文 3行くらい想定
salt string ソルト(認証補助) 認証実装次第で不要可能
role int ユーザー権限 例:admin=1 / user=0
created_id datetime 作成日時
updated_id datetime 更新日時

GAMES(登録しているゲーム)

カラム名 説明 備考
id int PK ID 主キー
title string 登録ゲームタイトル 例:アクトレイザー
hardware string 登録ハード 例:SFC / PS2
type string ジャンル 例:RPG / ACT
recommend string おすすめ度 5段階評価
difficulty string 難易度 5段階評価
memo text ゲームの思い出 自由記述
created_id datetime 作成日時
updated_id datetime 更新日時

BOARDS(年表単位のコンテナ)

カラム名 説明 備考
id int PK ID 主キー
user_id int FK ユーザー ID ユーザーを引っ張ってくる
game_id int FK ゲーム ID ゲーム引っ張ってくる
event_id int FK イベント ID イベントごとを引っ張ってくる
created_id datetime 作成日時
updated_id datetime 更新日時

BOARDS_GAMES(年表とゲームを結ぶ中間テーブル)

カラム名 説明 備考
id int PK ID 主キー
board_id int FK 年表 ID boardのデータ引っ張る用
game_id int FK ゲーム ID gamesのデータ引っ張る用

EVENTS (イベントの登録)

カラム名 説明 備考
id int PK ID 主キー
title string イベント内容 例:ゲームボーイ 発売
event_year datetime イベント年 例:1989年
event_type string イベントタイプ 例:歴史

BOARDS_EVENTS(年表とイベントをつなぐ中間テーブル)

カラム名 説明 備考
id int PK ID 主キー
board_id int FK 年表 ID 年表に渡すためのやーつ
event_id int FK イベント ID イベントを持ってくるためのやーつ

中間テーブルに関してこんなの作りました。

ER勉強用.png

そんなこんなでできました。

お互いお手手を繋いだら完成

スクリーンショット 2026-01-09 7.47.48.png

爽やかなカラーリングにしてみました。
あとは各カラムの説明を入れることでわかりやすくしました。

まとめ

ER図は書き方、書く方法がいっぱいあるよ

  • マーメイド記法
  • アプリ Draw.ioとか使う
  • VSコード内でもできるっぽい

先に画面遷移図を見つつカラム名、やることに対して
必要そうなのをリストアップしていくよ

お互いお手手を繋いだら完成

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?