私は多対多の関係を持っており、MySQLの関連付けテーブルで実装されています。子供用のテーブルと親用のテーブルがあります。子は複数の親を持つことができ、IDとともにparent_child_link関連付けテーブルに保存されます。
子はHTMLフォームを介して更新でき、親はHTMLの複数選択にあります。データベースのレコードを更新する必要がありますが、私のソリューションはあまり効率的ではありません。これが私がしていることの擬似コードです:
- child_id=xの子情報を更新します
- child_id=xであるparent_child_link内の現在の関連付けをすべて削除します
- 新しい関連付けを挿入します
このソリューションはうまく機能しますが、親が変更されていない場合、たとえば子の名前のみが変更された場合、2つの不要なクエリが実行されます。これらの不要なクエリを回避するにはどうすればよいですか?複数選択の親が変更されていないかどうかを確認する方法はありますか?
もちろん、これはすでに機能しているので、この面倒なことはすべて無視できますが、可能な限り効率を維持したいと思っています。