Come aggiornare una relazione uno-a-molti da un CheckBoxList, ListBox, ecc?
-
01-10-2019 - |
Domanda
Dato 2 tavole:
persona
PersonsFavoriteColors
Una persona può avere uno o più preferiti i colori. Questi colori vengono aggiornati con un controllo di selezione multipla (CheckBoxList, ListBox w / multi-selezione abilitato).
In passato, se sto aggiornando i colori della persona, mi piacerebbe:
- avviare la transazione
- Elimina tutti i record di colori per la persona
- record inserire per ogni colore selezionato
- Commit Transaction
E 'questo lo standard e le migliori pratiche per la gestione multi-controlli di selezione che ADD / aggiornamento / cancellazione record in tabelle figlio "a-molti"?
Grazie!
Soluzione
Io normalmente non sarebbe eliminare tutti i vecchi colori, ma piuttosto solo quelle che c'erano preferiti più a lungo e poi mi piacerebbe aggiungere solo quelli che erano in realtà nuova.
Altri suggerimenti
Se non sei bloccato in due tabelle, un modo relativamente semplice per memorizzare i valori nel modo che hai descritto è quello di utilizzare una matrice come il tipo di dati di colori preferiti, invece di un tavolo separato.
http://www.postgresql.org/docs/8.0/interactive /arrays.html
Se questo è un'opzione accettabile, le tue istruzioni di aggiornamento sarebbe semplicemente essere:
- avviare la transazione
- Aggiorna riga
- Commit Transaction