Tengo las siguientes tablas:
ProveedorActividades. Esta tabla indica en qué actividades trabaja un
proveedor. Una actividad viene identificada por 4 campos: área, grupo,
sector y actividad. Los campos de esta tabla serían los siguientes:
NIF
Cod_area
Cod_grupo
Cod_sector
Cod_actividad
Contratos. Esta tabla recoge los datos de un contrato con un proveedor para
realizar una actividad. Para poder contratar a un proveedor para realizar
una actividad es preciso que el proveedor trabaje en esa actividad
(ProveedoresActividades). Los campos de la tabla contrato serían:
NIF
Cod_area
Cod_grupo
Cod_sector
Cod_actividad
Contrato
Otros_campos
donde NIF, cod_area, cod_grupo, cod_sector y cod_actividad son FK de
ProveedoresActividades.
Ahora, se ha cambiado la codificación de las actividades, de tal forma que
una actividad (área, grupo, sector,actividad) se convierte en una o n nuevas
actividades (área2, grupo2, sector2, actividad2), es decir, a una actividad
origen le pueden corresponder una o más actividades destino. La tabla de
correspondencias tendría los siguientes campos:
Cod_area1
Cod_grupo1
Cod_sector1
Cod_actividad1
Cod_area2
Cod_grupo2
Cod_sector2
Cod_actividad2
Lo que se necesita hacer es actualizar las tablas de ProveedoresActividades
y Contratos para recoger la nueva codificación de las actividades.
Con ProveedoresActividades no hay problemas porque si a una actividad origen
le corresponden n actividades destino se añaden tanto registros
ProveedoresActividades como actividades destino, es decir, que si el
proveedor 1 trabaja en 01 01 01 01 y la actividad 01 01 01 01 se corresponde
con A 01 01 01 y B 01 01 01, en ProveedoresActividades aparecerán dos
registros para el proveedor 1, uno con la actividad A 01 01 01 y otro con la
actividad B 01 01 01.
Sin embargo, no sé como puedo modificar la tabla de contratos de forma que 1
contrato se quede como 1 contrato, es decir, sólo tengo que actualizar el có
digo de la actividad y no incrementar el número de registros de contratos.
La nueva actividad del contrato puede ser cualquiera de la actividades
nuevas que se correspondan con la actividad antigua, pero teniendo en cuenta
que para que un proveedor se contrate para una actividad, el proveedor tiene
que trabajar en esa actividad (tabla ProveedoresActividades). ¿Cómo puedo
coger de entre todas las correspondencias una única y que esté en
ProveedoresActividades?
Muchas gracias de antemano por vuestra ayuda.
Leer las respuestas