次のようなSQLテーブルがあります。
更新: 元のデータ (州、都市、学校) の既存の階層的な性質が、項目間に単純な関係が必要であるという事実を覆い隠しているため、サンプル テーブルを変更しています。
entities
id name
1 Apple
2 Orange
3 Banana
4 Carrot
5 Mushroom
これらのエンティティ間の双方向の関係を定義して、1 つのエンティティを表示しているユーザーが関連するすべてのエンティティのリストを表示できるようにしたいと考えています。
関係は、エンド ユーザーによって定義されます。
これらの関係をデータベースで表現し、その後クエリを実行して更新する最良の方法は何ですか?
見たところ一通り…
私の直感では、リレーションシップ テーブルは次のようになります。
entity_entity
entity_id_a entity_id_b
1 2
5 1
4 1
5 4
1 3
その場合、指定された entity_id が 4 の場合、関連するすべてのレコード (1 と 5) を取得するにはどうすればよいでしょうか?
同様に、entity_id = 1 のクエリは、2、3、4、および 5 を返す必要があります。
お時間をいただきありがとうございます。質問を明確にすることができるかどうかお知らせください。