Cómo actualizar una relación de uno a muchos de una CheckBoxList, ListBox, etc?
-
01-10-2019 - |
Pregunta
Dadas 2 tablas:
persona
PersonsFavoriteColors
Una persona puede tener uno o más colores favoritos. Estos colores son actualizados con un control de selección múltiple (CheckBoxList, ListBox w / selección múltiple activado).
En el pasado, si estoy actualizando los colores de la persona, me gustaría:
- Inicio Transacción
- Eliminar todos los registros de color para la persona
- Insertar registros para cada color seleccionado
- confirmar la transacción
Es este el estándar y las mejores prácticas para el manejo de múltiples controles de selección que añadir / actualizar / eliminar en los registros de tablas secundarias "a muchos"?
Gracias!
Solución
Yo normalmente no eliminar todos los colores anteriores, sino más bien sólo los que eran más largos no hay favoritos y entonces sólo había añadir los que realmente eran nuevos.
Otros consejos
Si usted no está encerrado en dos tablas, una forma relativamente sencilla de almacenar los valores de la forma en que has descrito es utilizar una matriz como el tipo de datos de los colores preferidos en lugar de una tabla separada.
http://www.postgresql.org/docs/8.0/interactive /arrays.html
Si esto es una opción aceptable, sus instrucciones de actualización serían simplemente:
- Inicio Transacción
- actualización de fila
- confirmar la transacción