Múltiples descendientes en relaciones familiares en Python
En la lección anterior, un padre solo podía tener
un hijo. Esto se lograba porque
el padre tenía un enlace son_id.
Ahora supongamos que un 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 enlace
almacenaremos no el id
del hijo, sino el id
del padre. De esta manera, varios usuarios podrán
referenciar 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 |
Se puede obtener un usuario junto con su padre 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.