Múltiples descendientes en relaciones familiares en PHP
En la lección anterior el padre solo podía tener
un hijo. Esto se lograba porque
el padre tenía una relación son_id.
Supongamos ahora que el padre puede tener varios hijos.
En este caso todavía podemos hacer
solo una tabla, que estará relacionada
consigo misma. Solo que en el campo de relación guardaremos
no el id del hijo, sino el id del padre. En este
caso varios usuarios podrán hacer referencia
a su padre - y así el padre tendrá
varios hijos:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Obtener el usuario junto con su padre se puede hacer de la siguiente manera:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Supongamos que tenemos usuarios. Cada usuario tiene un padre y una madre. Describa la estructura de almacenamiento.
Escriba una consulta que obtenga al usuario junto con su padre y madre.