Datos de padres e hijos
Frecuentes
Visto 347 equipos
1
Hola, estoy trabajando en un proyecto en el que tengo que guardar datos con una relación padre-hijo.
La estructura de datos es así:
flight_id child_id Flight_name
1 1 E213
2 2 E333
3 2 E444
El vuelo 1 no tiene child_id
por lo que su identificación principal lo reemplaza, el vuelo 2 tiene dos child_id
por lo que en cada uno de child_id
Tengo que poner el id de los padres.
¿Alguna idea de cómo puedo hacer eso?
2 Respuestas
1
Las relaciones padre-hijo generalmente se modelan al revés: el hijo pertenece a un padre. Piénselo, un niño solo puede tener un padre, eso es fácil de modelar; pero un padre con muchas identificaciones de niños es bastante difícil de modelar.
Además, puede usar Conjuntos anidados, también conocido como MPTT, para facilitar la consulta de niños/padres.
Ver http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ e http://en.wikipedia.org/wiki/MPTT.
Respondido 04 Jul 12, 10:07
Estoy guardando datos usando la consulta Php primero, determiné si los datos tienen un hijo, si es así, simplemente inserto una consulta y luego la actualizo de esta manera "); $child_id = mysql_insert_id(); $query=mysql_query("actualizar conjunto de prueba nombre de vuelo = '$ código_de_vuelo', id_de_niño='$id_de_niño' donde id_de_vuelo='$id_de_niño'"); - carnoso
0
Normalmente no almacenará todas las ID de los niños, sino las ID de los padres:
CREATE TABLE `flight` (
`id` int(11) NOT NULL,
`parent` int(11) DEFAULT NULL,
`flight_name` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`parent`) REFERENCES `flight` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Sus datos se verían así:
id parent flight_name
1 NULL E213
2 NULL E333
3 2 E444
4 2 E555
5 2 E666
Respondido 04 Jul 12, 11:07
sí, es así, lo siento por la mala interpretación. Quiero decir exactamente así en mi caso, el padre también es una clave externa que debe guardarse en otra tabla: carnoso
No sé después de insertar datos para un padre que tiene un hijo, ¿cómo puedo agregar datos del mismo padre con el segundo hijo? - carnoso
@mishi He ampliado el ejemplo para que tenga una idea de cómo se almacenan varios hijos de un padre. Si almacena los padres en una tabla diferente, en realidad no son de los padres, ya que son de un tipo de modelo diferente. - Feeela
@feela no estoy guardando a los padres en un modelo separado solo para ahorrar el precio relacionado con ese vuelo en particular. - carnoso
Todavía no entiendo cómo puedo agregar un segundo hijo del mismo padre. Busco mucho pero estoy confundido. - carnoso
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php database or haz tu propia pregunta.
Aclare su pregunta, ya que no puedo ver qué está tratando de hacer aquí. ¿Desea tener un código donde agregar los vuelos a la base de datos? ¿Desea configurar una estructura de base de datos basada en relaciones (entonces necesitaría dos tablas)? - Whisperity