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:

  1. avviare la transazione
  2. Elimina tutti i record di colori per la persona
  3. record inserire per ogni colore selezionato
  4. 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!

È stato utile?

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:

  1. avviare la transazione
  2. Aggiorna riga
  3. Commit Transaction
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top