私はMySQLでテーブルを作成しました。これらの要素を接続したいと思います。MySQL - 別のテーブル内の同じテーブルの2つの要素をリンクします。
これは、多対多の関係であるべきであり、私が作ってみたことは以下の通りです:
要素を持つテーブルを作成します。
テーブルを医学
| id |名前|説明|
リンクを持つテーブルを作成します。
テーブルの非互換性
を| medicine_id_1 | medicine_id_2 |
私は医学1と医学2間の非互換性を作成したいときに、私は実行する必要があります。
INSERT INTO incompatibilities VALUES 1,2
と私は医学のIDと互換性のないすべての薬を取得したいと思います= 1私は何をすべきですか:
SELECT * FROM incompatibilities WHERE medicine_id_1=1 OR medicine_id_2=1
これは正しい方法ですか?これらのクエリは意図したとおりに動作しますか?私は後に何をするより効率的な方法がありますか?そのmedicine_id_1
で少なくともIDで、medicine_id_2
で最大のIDを持つこと:
は、非互換性が対称非反射の関係であるので、あなたは常に順番に薬を格納する必要があり、事前