0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

中間テーブル

Posted at

中間テーブルとは

  • テーブルとテーブルの多対多の関係を表す関連テーブル

  • 中間テーブルを使うことで多対多の関係を一対多の関係にできる

中間テーブルを使う理由

  • 空のカラムができてしまいエラーの原因となるのを防ぐため

中間テーブル

例えばusersテーブルとcoursesというテーブルがあったとする

id user
1 a
2 b
3 c
4 d
id course
1 国語
2 数学
3 理科
4 社会
英語

中間テーブルを使わない場合以下の様になってしまい、冗長になってしまう。
空のカラムもできてしまいエラーの原因となる。

usersテーブル

id user course_id1 course_id2 course_id3 course_id4 course_id5
1 a 国語 数学 理科 社会 英語
2 b 国語 理科 社会
3 c 国語 数学 理科 社会
4 d 英語

coursesテーブル

id course user_id1 user_id2 user_id3 user_id4
1 国語 a b c
2 数学 a c
3 理科 a b c
4 社会 a b c
英語 a d

これを防ぐために中間テーブルを準備する

中間テーブル

id user_id1 course_id
1 a 国語
2 a 数学
3 a 理科
4 a 社会
a 英語
6 b 国語
7 b 理科
8 b 社会
~ ~ ~
12 d 英語

・どちらかのテーブル情報が増えてもカラムを足す必要がない
・不要な空欄の発生が防げる
・中間テーブルで、それぞれのユーザーの受けている科目が表現できている

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?