この記事でやること
- tagはtoxi法で実装( https://qiita.com/you8/items/b2394104c6f9865f5d46#toxi%E6%B3%95 )
- 二つのモデルの投稿フォーマットを共通のタグに関連づける
選択肢
- STIで一つのテーブルに二つのモデルをいれる
- tag_mapテーブルをそれぞれ用意する
- tag_mapに二つのidカラムを用意
STIで一つのテーブルに二つのモデルをいれる
STIはこの記事が分かりやすい
「railsでSTIの使い方」
http://mikamisan.hatenablog.com/entry/2016/06/05/152738
メリットはtableを新しく作らなくていいというところだがデメリットとしてtableが肥大化するというのがある。
tag_mapテーブルをそれぞれ用意する
上記のような設計にする。
メリット
- tableが肥大化しない
- modelを別々にできるのでそれぞれシンプル
デメリット
- 一緒にランキング計算やインデックスで出したいときに別々に処理を書かないといけない
tag_mapに二つのidカラムを用意
片方がnullになる設計だがなんか気持ち悪い。。。