掲示板のブックマーク機能を作成していて、ググっていくうちに混乱して多対多のアソシエーションのイメージが訳わからなくなったのでメモです。
実務未経験エンジニアなので間違ってたらご指摘お願いします。
前提として、User、Board、Bookmarkというモデルがあります。
Userから見てBoardは一体多の関係にあります(これは簡単)。
逆に言えばBoardから見てUserは多対一です(これもまぁそうだよねという感じ)。
では、Bookmarkを追加するにあたって、UserとBoardに多対多の関係を持たせてください←?
UserとBoardの間にはすでにアソシエーションがあるのにいかに?
Bookmarkはどこいったんだ?
絵として描き描きしていて気づいたのですが、Bookmarkを中間テーブルにすることで多対多のアソシエーションが成り立つのですね。
もっと具体的にいうと、UserはBookmarkを通してBoardと多対多(その逆も然り)のアソシエーションになる、ということです。
(本来はモデルの中身も書くべきでしょうが、今回はモデルのアソシエーションのみに着目したかったので省略しました)
あと私が自ら描き描きしなくても先人が詳細な説明をされていました。
https://qiita.com/ramuneru/items/db43589551dd0c00fef9