0
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?

ER図課題:テーブル洗い出し→リレーション整理→提出までの手順メモ

Last updated at Posted at 2026-01-11

記事本文(そのままQiitaに貼ってOK)
はじめに

テーブル設計(ER図作成)の課題に取り組みました。
今回は diagrams.net(draw.io) を使ってER図を作り、画像をGitHubの answer.md とPull Request(PR)に貼って提出する流れまでを整理します。

同じようにER図課題に取り組む人の参考になれば嬉しいです。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

やったことの全体像

機能要件から必要なテーブルを洗い出す

各テーブルのカラムを最低限決める

1–N / N–N の関係を整理する

diagrams.net でER図を作成する

Gyazoで画像化して answer.md とPRに貼る

PR作成 → 提出
ーーーーーーーーーーーーーーーーーーーーーーーーーー

テーブルの洗い出し

最初に「名詞」を拾ってテーブル候補を出しました。
今回必要になったのは以下のようなテーブルです(例):

users(ユーザー)

surveys(アンケート)

choices(選択肢)

answers(回答)

categories(カテゴリ)

survey_categories(アンケート×カテゴリの中間)

lists(ユーザーのリスト)

list_surveys(リスト×アンケートの中間)

reminders(リマインド)

この時点では、まず 箱(テーブル名)だけ置くのがポイントでした。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

カラムは「最小限」で書く

ER図は設計の全体像を示すのが目的なので、型まで厳密に書かなくてもOKにしました。
(必要なら後で実装時に詰めれば良い)

例:users / surveys(シンプル版)

users
id
name
email
introduction
gender
age_group
crypted_password
salt
created_at
updated_at

surveys
id
user_id
title
description
multiple_select
start_at
end_at
target_gender
target_age_group
created_at
updated_at

1–N と N–N の考え方

ER図で一番迷ったのがリレーションです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーー

1–N(1対多)

「親1件に対して子が複数」という形。
例:users(1)— surveys(N)

surveys に user_id を持たせる(外部キーはN側)

N–N(多対多)

N–Nは 直接つなげず中間テーブル を挟みます。

例:surveys と categories は多対多なので、

survey_categories を作って

surveys 1 — N survey_categories

categories 1 — N survey_categories

という形にしました。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

diagrams.netでER図を作るときのコツ

1テーブル=1つの箱に統一する(箱の中にカラムを書く)

まず users / surveys のような「起点」から埋める

全部作り込むより「要件を満たす構造」を優先する
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

画像をGitHubに貼る(Gyazo)

ER図をスクショしてGyazoにアップロードし、URLをMarkdownで貼りました。

ER図

※ GitHubで「画像として認識されない」場合は、画像URLそのものを使う必要があることもある(表示確認が大事)。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

提出前のチェック

answer.md で画像が表示される

PR本文でも画像が表示される

チェックリストを付ける(セルフチェック済みにする)

マージはしない

この4つを満たしていれば提出として安心でした。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

まとめ

テーブル設計は「名詞の洗い出し」→「関係の整理」から始めると進めやすい

N–Nは中間テーブルを挟むのが鉄則

diagrams.net はER図作成に便利

提出は「画像がGitHub上で見えるか」を最後に必ず確認する

0
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
0
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?