Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] Borrar datos de BD con clave foranea sin eliminar datos hijos

Estas en el tema de Borrar datos de BD con clave foranea sin eliminar datos hijos en el foro de Bases de Datos General en Foros del Web. Buenas! Resulta que estoy haciendo un proyecto donde existe la siguiente relacion Academia -> Instructor -> Competidor la academia tiene un id, por clave foranea ...
  #1 (permalink)  
Antiguo 03/06/2017, 17:04
 
Fecha de Ingreso: octubre-2013
Mensajes: 21
Antigüedad: 10 años, 7 meses
Puntos: 0
Borrar datos de BD con clave foranea sin eliminar datos hijos

Buenas!

Resulta que estoy haciendo un proyecto donde existe la siguiente relacion

Academia -> Instructor -> Competidor
la academia tiene un id, por clave foranea se transmite al instructor el id de la academia a la que pertenece. mientras que al competidor se le transmiten los id de la academia a la que pertenece y del instructor a cargo

Una academia tiene uno o mas instructores y estos instructores, tienen a cargo varios competidores a cargo

si yo quiero eliminar una academia, OBLIGATORIAMENTE tengo que de la misma manera borrar todos los instructores y competidores asociados a esa academia ??

existe la posibilidad de mantener los instructores y competidores que estén asociados a la academia que se quiere borrar ?

como puedo solucionar este asunto sin tener que modificar la estructura de la BD ?

desde ya muchas gracias por las respuestas
  #2 (permalink)  
Antiguo 03/06/2017, 23:08
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Borrar datos de BD con clave foranea sin eliminar datos hijos

agrega una columna activo en cada tabla que quieras ocultar información con valor 1 o 0

no tengo un nivel tan avanzado en BD para responder si se puede hacer porque antiguamente lo intente busque por todos lados y no pude asi que opte por la opcion que te mencione al principio

lo que si alguien me dijo que los registros en BD no se eliminan solo se ocultan en base de dato ER

  #3 (permalink)  
Antiguo 04/06/2017, 04:22
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 6 meses
Puntos: 154
Respuesta: Borrar datos de BD con clave foranea sin eliminar datos hijos

Hola kasher,

Personalmente no le veo sentido a lo que pretendes, ya que las claves foráneas se establecen para evitar inconsistencias en la BD y si no se respetan, se producen dichas inconsistencias, pero de aquí se deduce que podría ser algo así:

Código SQL:
Ver original
  1. ALTER TABLE `tu_tabla`
  2.   ADD CONSTRAINT `nombre_unico_para_la_restriccion` FOREIGN KEY (`nombre_de_la_clave_foranea`) REFERENCES `tabla_a_la_que_hace_referencia` (`clave_a_la_que_se_aplica`) ON DELETE SET NULL ON UPDATE CASCADE;

Espero que te sirva...

Etiquetas: bd, clave, hijos, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:26.