Estoy trabajando en una aplicación web con carrito, donde los productos pueden tener asignados X Colores y X Tallas.
Los Colores y Tallas son previamente creados por el usuario administrador y luego asignados al producto mediante el formulario de edición del producto.
Estos datos se guardan en tablas separadas, de la siguiente manera:
Productos: id, nombre, descripcion.
Colores: id, nombre, descripcion.
Tallas: id, nombre, descripcion.
Relacion_PCT: id, id_producto, id_color, id_talla.
En la edición del producto, los colores y tallas aparecen listados cada uno con un checkbox, indicando si estos están asignados o no al producto. Al momento de hacer el submit recupero los datos de colores y tallas, seteo como eliminado los registros actuales e inserto todos los registro nuevos de colores y tallas.
Entonces, mi consulta es, ¿hay alguna manera más óptima de Asignar y Desasignar los atributos al Producto en vez de Borrar todos los registros y crear todos nuevamente?
Aclaro que como requerimiento del cliente todos los registros de la DB que son “eliminados” se eliminan lógicamente, teniendo la posibilidad de que en futuro cercano estos datos puedan utilizarse para informes y como backup.
Mi intención es evitar que por cada edición de productos, tener que hacer este proceso de “Eliminar” e “Insertar” nuevamente los registros de Atributos a la tabla de relaciones, ya que me incomoda que pueda crecer tanto la tabla.
Algo que tenía pensado hacer es comparar los registros de la DB contra los que trae el formulario y de esta manera hacer los “insert” para los nuevos atributos asignados y los “delete” para los registros desasignados. Pero supongo que esto pueda hacerme lenta la edición del producto

Espero haber sido claro, gracias por leer xD
