0
1

More than 3 years have passed since last update.

railsで二つのモデルに共通のタグを関連づけるときの選択肢

Posted at

この記事でやること

選択肢

  • STIで一つのテーブルに二つのモデルをいれる
  • tag_mapテーブルをそれぞれ用意する
  • tag_mapに二つのidカラムを用意

STIで一つのテーブルに二つのモデルをいれる

STIはこの記事が分かりやすい

「railsでSTIの使い方」
http://mikamisan.hatenablog.com/entry/2016/06/05/152738

メリットはtableを新しく作らなくていいというところだがデメリットとしてtableが肥大化するというのがある。

tag_mapテーブルをそれぞれ用意する

副業Q-A-10.jpg

上記のような設計にする。

メリット

  • tableが肥大化しない
  • modelを別々にできるのでそれぞれシンプル

デメリット

  • 一緒にランキング計算やインデックスで出したいときに別々に処理を書かないといけない

tag_mapに二つのidカラムを用意

片方がnullになる設計だがなんか気持ち悪い。。。

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