foreing Key en la misma tabla

Iniciado por David Vans, 22 Febrero 2013, 00:18 AM

0 Miembros y 1 Visitante están viendo este tema.

David Vans

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.