
17/06/2006, 06:39
|
| | Fecha de Ingreso: junio-2006
Mensajes: 1
Antigüedad: 18 años, 8 meses Puntos: 0 | |
Y que pasa cuando la integridad referencial debe ser establecida para dos campos?
Es decir:
Clientes
:::::::::
id_cliente
id_entidad
Ventas
::::::::
id_cliente
id_entidad
Si hacemos un DELETE FROM clientes WHERE id_cliente = 2 AND id_entidad = 7 de clientes (y hay relacion ventas.id_cliente => clientes.id_cliente), nos borrara el cliente 2 de la entidad 7, pero nos borrara tambien de ventas todos las que tenga id_cliente =2 aunque sean de otras entidades.
Enteder por entidad diferentes webs corriendo en una misma aplicacion.
id_cliente
id_entidad
Es clave primaria en ambas tablas
ALTER TABLE `ventas`
ADD CONSTRAINT `ventas_id_cliente_id_entidad` FOREIGN KEY (`id_cliente`, `id_entidad`) REFERENCES `clientes` (`id_cliente`, `id_entidad`) ON DELETE CASCADE ON UPDATE CASCADE;
Esto lo arreglaria.
El mayor prblema es que phpmyadmin no puede establecer relaciones de varios campos de forma conjunta, solo 1 a 1 asi que toca hacerlo a mano. (Luego si editas Vista de Relaciones y guardas lo dejara correctamente con los dos campos)
Última edición por liron23; 17/06/2006 a las 07:26 |