我有一個多對多的關係,用MySQL中的關聯表實現。我有一張兒童桌子和一張父母桌子。一個孩子可以有多個父母,並使用他們的ID保存在parent_child_link關聯表中。PHP更新MYSQL多對多關係
孩子們可以通過HTML表單進行更新,父母都在HTML多選。現在我需要更新數據庫中的記錄,但我的解決方案效率不高。下面是僞代碼我做什麼:
- 更新孩子的信息,其中child_id = X
- 刪除所有當前協會parent_child_link其中child_id = X
- 插入新的關聯
該解決方案很好,但是當父母沒有改變時,例如只有孩子的名字被改變了,然後有2個不必要的查詢被執行。我怎樣才能避免這些不必要的查詢?有沒有辦法檢查多選的父母是否沒有改變?
當然,我可以忽略所有這些麻煩,因爲它已經有效,但我真的很喜歡讓事情儘可能高效。
這是一對一; OP與數據透視表有多對多的關係。 – lafor
你的權利,我的壞。 –
我很想將它移到應用程序層之外,但我不明白你的解決方案和參考如何解決我的問題。據我設法分析它,刪除一個孩子或父母(以擺脫鏈接)將是有用的。 – EsTeGe