![]() |
problema con foreing key!!!!!
buen día caballeros
tengo dos ablas clientes y pedido ambas relacionadas clientes(id,nombre,direccion) pedidos(id,idpedido,monto, cargo) la relacion es clientes.id=pedidos=idcliente lo que deseo es que al borrar un cliente que este referenciado en la tabla pedidos, simplemente se borre el clinte y que quede su id en el campo idcliente en la tabla pedidos, si modifico el id del cliente se actualice en la tabla pedidos. al crear la clave foranea en la tabla pedidos pongo on delete: no action on update: cascade pero al darle apply se pone automáticamente esto on delere: restrict on update: cascade como podria hacer para que cuando se borre un cliente quede su id en la tabla pedidos aunqueno tenga corresponddencia con la tabla clientes??? gracias por sus aportes |
Amigo, eso que dices es un pecado en un diseño entidad relación.
Simplemente para eso no requieres tener restricciones de llave foranea entre las tablas pedidos y clientes. Pero, insisto, eso significaria un error de diseño. |
Totalmente de acuerdo con poliburro, para lo que quieres hacer (borrar cliente, sin borrar pedidos) no necesitas las llaves foreaneas, pero obviamente, las inconsistencias en la tabla pedidos serán catastróficas.
Pero me pregunto; borrar un cliente, ¿será lo correcto?. Salud OS. |
Yo también me preguntaba esto. Para efectos contables y demás yerbas, imagino que no pueden borrarse los clientes, aun cuando ya no lo sean. Pero al margen de eso, opino igual que ustedes, no debería poder borrarse un registro y dejar vivos sus dependientes.
// Saludos |
si bueno tiene razón lo que pasa es que ciertos clientes ya no son de la empresa. La solucion que he dado es crear un campo mas en la tabla clientes de tipo boolean si esta activoono lo cual emula un borrado logico cuando se le setea a inactivo, quedando aun sus pedidos para efectos contables o de estadística
gracias por sus respuestas |
| La franja horaria es GMT +2. Ahora son las 18:32:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi