Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-07-2007
Avatar de david_uh
david_uh david_uh is offline
Miembro
 
Registrado: may 2007
Ubicación: Arequipa, Perú
Posts: 227
Poder: 17
david_uh Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 14-07-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 14-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
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
Responder Con Cita
  #4  
Antiguo 14-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #5  
Antiguo 14-07-2007
Avatar de david_uh
david_uh david_uh is offline
Miembro
 
Registrado: may 2007
Ubicación: Arequipa, Perú
Posts: 227
Poder: 17
david_uh Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 13:49:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi