###前提・実現したいこと
Twitterのような左右非対称(Aをフォローしても、自動的にAにフォローされるわけではない)な友達関係ではなく、完全に左右対称な(どちらかがフォローすれば両者は自動的に相互フォロー関係になる)友達関係のようなテーブルを作るためのテーブル設計に悩んでいます。
実現したいことは、記事に対してタグが関連づけられていて(ここまでは実装済み)、さらにタグに対しても似たようなタグが
関連づけられていて、記事の中で、このタグの記事を読んだ人に人気のタグのような形で使いたいと思っています。
左右非対称な場合は、以下のような形でテーブルを作っていました。
###該当のソースコード
ruby
1class CreateRelationships < ActiveRecord::Migration[5.0] 2 def change 3 create_table :relationships do |t| 4 t.integer :follower_id 5 t.integer :followed_id 6 7 t.timestamps 8 end 9 add_index :relationships, :follower_id 10 add_index :relationships, :followed_id 11 add_index :relationships, [:follower_id, :followed_id],unique: true 12 end 13end
しかし、今回は、左右非対称にする必要はありません。
このやり方で仮にやるとすると、本来は左右対称にもかかわらず、カラムがフォローする側とされる側になるので、
二重にデータを追加していく形になるのではないかと・・・。
|follower|followed|
|:--|:--:|--:|
|tagA|tagB|
|tagB|tagA|
これがイケてないなと思いつつ、でもどうすれば左右対称のテーブルに出来るのかわかりません。
どなたか教えていただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/10 09:58