追記: 勘違いしてたので別エントリーで補足 Twitterで言うところのfavorites、followers、friends。 もごもごで言うところの片想い、想われ、両想いの関係をDBICで表してみました。 まず関係の定義から。 favorite(片想い): AがBをお気に入りに入れるとAから見てBはfavoriteな関係(片方向) follower(想われ): Bから見てAはfollowerな関係(片方向) friend(両想い): Aのお気に入りに入ってるBがAをお気に入りに入れると両方から見てfriendな関係(双方向) で、テーブル設計ですが、それぞれをテーブルとして持ってもいいのですが、関係を追加するごとにあちこちのテーブルを見なきゃならんので、一個のテーブルで済ましてみました。 要は user_linksテーブルを使ってusersを自己結合なmany-to-m