Ho una relazione molti-a-molti, implementata con una tabella di associazioni in MySQL. Ho un tavolo per bambini e un tavolo per i genitori. Un bambino può avere più genitori, salvati nella tabella di associazione parent_child_link con i rispettivi ID.Aggiornamento PHP Relazione molti-a-molti MYSQL
I bambini possono essere aggiornati tramite un modulo HTML, i genitori sono in una multi-selezione HTML. Ora ho bisogno di aggiornare il record nel database, ma la mia soluzione non è molto efficiente. Ecco in pseudocodice quello che faccio:
- Aggiornare le informazioni bambino dove child_id = x
- eliminare tutte le associazioni attuali parent_child_link dove child_id = x
- Inserire le nuove associazioni
Questa soluzione funziona alla grande, ma quando i genitori non sono stati cambiati, ad es è stato modificato solo il nome del bambino, quindi sono state eseguite 2 query non necessarie. Come posso evitare queste query inutili? C'è un modo per verificare se i genitori nella selezione multipla non sono cambiati?
Ovviamente potrei semplicemente ignorare tutto questo fastidio, perché funziona già, ma mi piace davvero mantenere le cose il più efficienti possibile.
Questo è uno-a-uno; L'OP ha una relazione molti-a-molti con una tabella pivot. – lafor
La tua giusta lafor, mia cattiva. –
Mi piacerebbe spostarlo al di fuori del livello dell'applicazione, ma non vedo come la soluzione con i riferimenti possa risolvere il mio problema. Per quanto sono riuscito ad analizzarlo, sarebbe utile quando si elimina un bambino o un genitore (per sbarazzarsi del link). – EsTeGe