多対多の関係を持っていますが、これはMySQLの関連テーブルで実装されています。私は子供のためのテーブルと両親のためのテーブルを持っています。子は複数の親を持つことができ、parent_child_link関連テーブルにIDで保存されます。PHPの更新MySQLの多対多の関係
子供はHTML形式で更新することができ、両親はHTMLの複数選択になります。今私はデータベースのレコードを更新する必要がありますが、私のソリューションはそれほど効率的ではありません。ここで私は何をすべきか擬似コードである:
- 更新child_id = X
- がparent_child_linkに現在のすべての関連付けを削除した子情報どこchild_id = X
- 挿入し、新たな団体
このソリューション偉大な作品が、親が変更されていないとき、例えば子の名前だけが変更された場合、不要な2つのクエリが実行されます。これらの不要なクエリを避けるにはどうすればよいですか?複数選択の親が変更されていないかどうかを確認する方法はありますか?
もちろん私はこのすべての面倒を無視することができます、それはすでに機能しているので、私は本当に物事を可能な限り効率的に保つことが大好きです。
これは1対1です。 OPには、ピボットテーブルと多対多の関係があります。 – lafor
あなたの右のラフォー、悪いです。 –
私はアプリケーションレイヤーの外に移動したいと思っていますが、私の問題を解決するためのリファレンスがどのように解決されているのか分かりません。私が分析した限りでは、子や親を削除すると(リンクを削除するために)便利です。 – EsTeGe