ユーザーが友情を互いに関連付けることができるテーブルを作成したいと思います。同時に、このテーブルは、私が取り組もうとしている他のさまざまなテーブル間の1対多の関係になることに関連して動作します。mysql DBにフレンドシップアソシエーションを保存する適切な方法は何ですか
今、私はこの
MEMBER_ID、friend_idような何かを考えています、アクティブ、日付
MEMBER_IDが呼び出しを行ったユーザの列となり、friend_idは、彼らがしている友人の列になります0に保留中、1 =アクティブ、日付は、その特定の行の最後の活動のログに記録された日付になります。
今私の混乱は、私は通常member_idをクエリし、関連するfriend_idのクエリの残りの部分を適切な人物に応じて表示することです。だから、この種の論理を念頭に置いておくと、1回のリクエストにつき2行が必要になると思います。 1つは、その要求のmember_idと要求のfriend_idがテーブルに挿入され、次に1つは反対ですので、毎回それに応じてクエリを実行できます。だから本質的には、この特定のテーブルに要求されたすべてのアクションのためのダブルディッピングのように、私は2つのアクションのように動作させる必要があります。 最適化が進んでいる限り、私には分かりません。だから私の質問では、このような関係のためのデータを扱う適切な方法は何ですか?あるいは、私は実際には、これを扱うアプローチであることを誠実に考えていますか?
最初のモデルは完璧です。第二の部分については、両方の方向を見出すために、ここではすでに多くの答えがあります。短いバージョン:あなたのSELECTクエリを少しfancyfull構築し、両方の方向を簡単に取得します。 –