私はまだこれに出くわしたことがないのはおかしいです!
ユーザーが互いに「友達」になれるシステム (ソーシャルネットワーキング) に取り組み始めるまで、1 つのテーブルで「多対多」の関係を持つことができるとは思いもしませんでした。
標準のルックアップ テーブルは、少なくとも私が使い慣れている方法では、ここでは適切ではありません。シンプルにしましょう:
ユーザーテーブルには「id」と「name」列があります。
User_relationship テーブルには「uid1」と「uid2」があり、「友人」、「芽」、「仲間」、または「それ以外」のユーザーを表します。
ここでの問題が何であるかはすぐに明らかになります.uid1とuid2は同じテーブルの同じ列からの同じデータ型です。つまり、一意のキーに欠陥があります。
例: uid1 = 1 uid2 = 2
以下と同じです:
uid1 = 2 uid2 = 1
したがって、クエリが間違って実行された場合、2 つのレコードまたは 0 レコードが返される可能性があります。
テーブルを適切に設計するという精神から、既存の値を確認するためにテーブル全体を 2 回スキャンする必要はありません。
これを処理するためのある種のトリックはありますか?これは私が思いもよらなかった設計上の問題であり、それを機能させるための簡単なトリックがあることを知っているので、私はイライラします。
あなたが尋ねる前に、私はまだ何も試していません.物事を関連付ける私のお気に入りの方法(ルックアップテーブル)は、ここでの私のニーズには不十分であり、助けが必要です-SOまたはGoogleで何も見つかりません. :(
前もって感謝します。