Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: David Vans en 22 Febrero 2013, 00:18 am



Título: foreing Key en la misma tabla
Publicado por: David Vans en 22 Febrero 2013, 00:18 am
Hola todos.

Tengo un problema con una tabla MYSQL con 4 campos MYSQL
id_user
id_padre
container_padre
nombre

por ejemplo
 
id_user    id_padre   container_padre   nombre
   1              1                0                     padre
   1              2                1                     hijo1
   1              3                1                     hijo2
   1              4                3                     hijo_de_2_y_nieto_de_padre
   
   
Mi problema es que queiro eliminar el padre tambien todos sus hijos y sub hijos.
por ejemplo con este ejemplo al eliminar padre que es id_padre=1 tendria que eliminar todoslos que tengan container_padre=1 y a su vez eliminar  hijo_de_2_y_nieto_de_padre ya que hijo2 tambien lo he eliminado.

Como si fuera un arbol de directorios pero no es el caso.

conatiner_padre=0 es como si fuera la raiz y si no es 0 es el id_padre del contenedor.

Estoy usando MYSQL he probado estos motores MyISSAM y INNOBD  y no consigo nada.

No se si puede hacer con foreing key o como puedo crear la consulta, Es para una web en PHP, he pensado crear un consulta recursiva para recorrer todo pero el proceso seria muy lento si son 700 elementos tendria que recorrer los 700 y dentro de cada uno y asi, lo que llamamos recursividad y se puede tirar la vida.

No me importaria crear otra tabla de referencia pero no consigo aplicarle la logica.

Un saludo y muchisimas gracias por vuestro tiempo.