FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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 |
#2
|
||||
|
||||
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.
__________________
Conoce mi blog http://www.edgartec.com |
#3
|
|||
|
|||
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.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#4
|
||||
|
||||
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 |
#5
|
||||
|
||||
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 |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Modificar una foreing key | David | Conexión con bases de datos | 0 | 11-11-2006 22:10:51 |
Foreing Key con Paradox | jdangosto | Conexión con bases de datos | 2 | 04-08-2005 09:53:33 |
|